home *** CD-ROM | disk | FTP | other *** search
/ WinDesk 95 - An MPC Encyclopedia / WinDesk 95 - An MPC Encyclopedia.iso / power / lstrial2.000 / ls.doc < prev    next >
Text File  |  1995-12-05  |  117KB  |  2,368 lines

  1.  
  2.       ─   ─  ─ ──═───═──═─═══════════════════════════─═──═───═── ─  ─   ─
  3.                   ─ ─╦    ╦     ╦    ╦  ╔═╗            ─ ─║
  4.                  ─ ──║          ║    ║  ║            ── ──║
  5.                    ──║    ║ ╔═╦ ╠═╗ ═╬═ ╚═╗ ╔═╗ ╦═╗ ╦═╗ ╔═╣
  6.                  ── ─║    ║ ║ ║ ║ ║  ║    ║ ║ ║ ╠═╝ ╠═╝ ║ ║
  7.                   ─ ─╚══╝ ╩ ╚═╣ ╩ ╩  ╩  ╚═╝ ╠═╝ ╚═╝ ╚═╝ ╚═╩
  8.                            ─ ─║          ─ ─║
  9.                         ─ ──╚═╝         ─ ──╚
  10.  
  11.                                   ┬─┐ ┬─┐ ┌─┐
  12.                                   ├─│ ├─│ └─┐
  13.                                   ┴─┘ ┴─┘ └─┘
  14.               ─   ─  ─ ──═───═──═─═══════════─═──═───═── ─  ─   ─
  15.                           The future of BBS software
  16.  
  17.                            Version 1.00  Release II
  18.                                   
  19.  
  20.      Copyright (C) 1995 by RidgeLine Engineering.    All Rights Reserved.
  21.   _________________________________________________________________________
  22.                                   [Contents]
  23.  
  24.   Introduction
  25.   Part 1 - Getting Started
  26.     1.1  Setting up LightSpeed 
  27.     1.2  Modifying the questionares
  28.     1.3  Modifying the menu screens
  29.     1.4  Modifying the menu system
  30.   Part 2 - The Mail System
  31.     2.1  What's so special
  32.     2.2  Simple tricks
  33.     2.3  The details
  34.   Part 3 - The File System
  35.   Part 4 - Installing doors
  36.     4.1  LightSpeed Companions
  37.     4.2  Other doors
  38.   Part 5 - Keys & Local commands
  39.   Part 6 - Glossary of Terms
  40.   Part 7 - Troubleshooting
  41.   Part 8 - Pricing and upgrade policy
  42.     8.1  Upgrades
  43.     8.2  Contacting us
  44.     8.3  What you're buying
  45.   Appendix A - Known bugs
  46.   Appendix B - Why?
  47.   Credits
  48.   Legal Notice
  49.     Copyright
  50.     Source Code
  51.  
  52. ------------------------------------------------
  53.  
  54.                                [Introduction]
  55.  
  56.   Thank you for trying this product.  We hope you'll find it to be the best
  57. system available.  This is still an early version, and probably has many
  58. bugs and faults in it still.  To order your copy of LightSpeed, print out 
  59. and mail in REGISTER.FRM.  For more information or assistance, contact our 
  60. BBS system (see: Part 7 - Pricing, for the BBS numbers)  You'll find the 
  61. latest pricing and information on our system.  And feel free to test the 
  62. system to see if you like it from a user's point of view.  Also, if you have 
  63. any questions, feel free to write a comment to the sysop (Terror) and he'll 
  64. try his best to answer any questions you might have.  He is also the lead 
  65. programmer for LightSpeed and our other products.
  66.  
  67.   What is LightSpeed?  LightSpeed is a full-featured BBS System, a program
  68. that can run on a single (or networked, although this feature is probably
  69. not functional yet) computer(s) and answer phone calls from modems.  
  70. LightSpeed can handle incoming calls from thousands or even hundreds of 
  71. thousands of users.  It provides the foundation for you to build a BBS 
  72. system to host in any number of activities and computer services.
  73.  
  74.   Now a brief look at the features in the full system of LightSpeed:
  75.  
  76.     -= Complete DOS-Based system capable of operating up to 999 lines 
  77.         [Maximum nodes supported varies between editions, trial edition
  78.          only supports one line and one free local line]
  79.     -= Free "local node" allowing the local sysop access to the BBS system.
  80.     -= The most complete message system available.  Featuring "auto-deletion"
  81.         which keeps even the most busy system's mail base filled only with
  82.         the messages you need.  And excellent methods for turning any BBS
  83.         into an interesting and active message system.
  84.     -= The most configurable system available.  Up to 1,000 message, file
  85.         areas, and security classes.  And a totally flexible menuing system.
  86.         Keep all your BBS commands from one main menu, or any number of
  87.         sub-menus, totally up to you.
  88.     -= Fast: Capable of running multiple lines off a single computer.
  89.         [Requires DesqView, a multi-tasker, or a network at this time]
  90.     -= Powerful information system: Completely configurable questionares
  91.         allow you to choose the information you ask for, and manage the
  92.         information however you want.
  93.     -= Multiple operation modes: Use time limits, security classes, or
  94.         credits to keep track of your user's system usage.  
  95.     -= Shut off selected parts of your system after a set amount of time,
  96.         for example: limit selected user's access to download capability.
  97.     -= Powerful door support (Doors are "add-ons" usually produced by
  98.         sources other than our company.)  Doors made specifically for or
  99.         with help from LightSpeed have an extended link with the system that 
  100.         allows them to act just like they are a part of LightSpeed itself.
  101.         [Doors are not available in the trial edition]
  102.     -= Enjoyable teleconference that lets users talk with other users,
  103.         the main attraction of many BBS systems.  Features full action 
  104.         commands, generic actions, whisper & page commands, and more!  
  105.     -= Free accessories: LsVote, LsWall, LsChat, LsPlanets, and LsVerify 
  106.         doors provide much entertainment that will make your BBS a hit 
  107.         instantly.  As well as the "Calls" utility program.  [Not included
  108.         in the trial edition]
  109.     -= Cheap: The lowest priced BBS system available in today's market.
  110.         Currently starting at $ 40 for a single node (with free local node).
  111.     -= Chat modes: In addition to the nice teleconference, a simple but
  112.         professional sysop chat mode is provided to allow the system
  113.         operator (sysop) to talk with the current user.
  114.     -= Page system: Users can page each other from other parts of the
  115.         system, outside of teleconference.  You can even communicate with
  116.         people using doors, in some cases.
  117.     -= Powerful terminal program: (Not available yet, no garuntee it ever 
  118.         will be.)  LightSpeed will have a companion terminal named LightTerm
  119.         or LTerm for short.  Users operating from this terminal program will
  120.         have faster ANSI, "terminal module" support, and 320x200x256 color
  121.         graphics in place of ANSI (if your LightSpeed BBS is setup to offer
  122.         it) and much more.  LTerm will be a shareware program.
  123.     -= Full RIP and ANSI support: RIP stands for [R]emote [I]maging
  124.         [P]rotocal, and provides a means of operating with the BBS in
  125.         a graphical environment.  ANSI is the standard which allows for
  126.         color when operating with any BBS.
  127.     -= Baud rate adjustment: LightSpeed can treat users with different
  128.         baud rates differently, as you define.  For example, users at
  129.         14400 (14.4k) baud can see a brilliant animation, however users
  130.         at 2400 baud would be bogged down by an animation's transfer time,
  131.         so LightSpeed can send 2400 baud users a still-screen instead.
  132.     -= User and security control: Along with the flexible menuing system
  133.         comes the ability to lock selected users and security classes
  134.         out of any command you choose.  Or, allow only selected users into 
  135.         a more private command.  Password protect any commands you wish.
  136.     -= Built-in registery of users: Allows users to learn more about other
  137.         users.  Gives information such as a person's hobbies and interests.
  138.     -= File ratios: Prevent users from downloading too much by forcing them 
  139.         to upload a certain amount for what they want to download.  You can 
  140.         use bytes or files for this ratio (or both, or neither) and you can 
  141.         vary it by-security (for example, paid users may be made exempt from 
  142.         the ratio).  
  143.     -= Built-in Cd-Rom support: Easily add cd-roms to your BBS system,
  144.         allowing you to add thousands of files to the system quickly and
  145.         relatively cheaply.  LightSpeed has excellent catagorizing 
  146.         capabilities, so that even a system with 50+ Cd's can let the user
  147.         find what they want quickly & easily.
  148.     -= Multiple file/mail systems: Divide your file & mail areas up as many
  149.         times as you like.  For example, let users choose from Windows or
  150.         Dos files, and then choose from Games, Utilities, or Image files,
  151.         and finally let them choose from those file areas.  Divide them up
  152.         once or a thousand times!
  153.     -= Full Door.Sys (52-line) and InfoLink.Dat support for doors.
  154.         Extremely easy to use door system, and very fast.
  155.         [Not available in trial edition] 
  156.     -= Credit, time/day, file KB-Ratio, file count-ratio, KB/day ratio,
  157.         and count/day ratio, use any of them, or none at all.  Giving you
  158.         extensive control over your user's activities, based on their
  159.         security class.  
  160.     -= Comment to the Sysop menu: Expandable, predefine comments to any
  161.         user on your system.  This can be very useful on larger systems,
  162.         for example you might want to allow users to comment to the main
  163.         sysop, or to a technical support staff.  Create "mail-boxes" for
  164.         any users.
  165.     -= Adjustable behavior: LightSpeed can treat different terminals,
  166.         nodes, users, security classes, and baud rates in different ways,
  167.         as you define.  LightSpeed can even act differently at random!
  168.         You could set your BBS up to use 10 different menu designs at 
  169.         random.
  170.  
  171.   And LightSpeed has a bright future ahead of it.  Some of the things
  172. we've considered, or even planned, in the future are:
  173.  
  174.   -  For larger systems, future plans involve adding internal multi-tasking 
  175.    support, which makes it possible to operate as many as 200 different phone
  176.    lines (nodes) from a single computer with no loss of speed.  For now, you 
  177.    must use a multitasker such as DesqView or Dv/X (Windows may be possible,
  178.    however is un-recommended.)  
  179.  
  180.   -  C/C++ programmers will soon have the ability to write programs with 
  181.    help from LightSpeed as easily as writting a program to run on your own
  182.    computer.  Our add-ons, LsVote, LsWall, LsVerify, LsChat, and LSPlanets
  183.    provided with LightSpeed, and our Teleconference module, are all written
  184.    using this code.  In the future, support for Pascal is expected.
  185.    
  186.   -  There are even plans being considered to allow a new 256 color remote 
  187.    operation mode.  That would allow fully digitized graphics for your
  188.    BBS.  Your main menu could be a digitized image, or something you've drawn
  189.    with up to 256 different colors.  We've tested this technology and found 
  190.    it can operate often faster than regular ANSI in our system.  And another
  191.    untested technology we've considered is graphical (256 color) animations
  192.    across the modem.  While untested, we predict it may be possible to do
  193.    so with a frame rate of 10fps in a 120x100 window.  There are no current
  194.    plans to implement animation technology, however, at least until faster
  195.    modems become common.
  196.  
  197.   -  We will be looking at adding Internet support through LightSpeed soon.
  198.  
  199.   -  LightSpeed will features a built-in BBS-to-BBS communicatations system
  200.    called "LaserLink" which lets LightSpeed systems share different data
  201.    such as messages or files, and even any doors written with LsDoor.
  202.  
  203.   -  We are currently looking at writting 2 additional versions, one with
  204.    internal multi-tasking, and one for Windows-based operation.  The
  205.    Windows edition has never really been done before, but, IF DONE PROPERLY,
  206.    it is expected that it can surpass DOS operation in many aspects
  207.    including speed and simplicity.  
  208.  
  209.   If you downloaded this file off a BBS system, it is either the Trial 
  210. edition or illegal software (pirated).  If you received this software on
  211. a floppy disk, look at the disk's label to figure out which edition you
  212. have.  What is limited about the Trial Edition?
  213.  
  214.   - Doors are totally disabled.
  215.  
  216.   - Actual uploads and downloads are disabled.  The file system operates 
  217.     normally except for the actual file transfers, so you can still have a 
  218.     look at it.  (Currently, LightSpeed would require GSZ or DSZ companions 
  219.     to help with the downloads & uploads, these can be found very easily on 
  220.     local BBS systems)
  221.  
  222.   - No teleconference is included.  (Teleconference is normally run from a 
  223.     door, this door is specially designed to work well with LightSpeed.)
  224.  
  225.   - Questionare links (doors in questionares) are disabled.
  226.  
  227.   - System events involving batch files are disabled.  This also disables 
  228.     LightSpeed's daily maintenance from being run automatically (you can 
  229.     still run it manually using the program MAINT.EXE in your LightSpeed
  230.     directory).  Daily maintenance is required to purge aged mail and user 
  231.     accounts, and to purge unused data from the user & mail databases and
  232.     a few other tidy-up operations.
  233.  
  234.                         [Part 1 - Getting Started...]
  235.  
  236.   [Step 1]:  For LightSpeed to operate correctly, you must modify your
  237. Config.Sys and Autoexec.Bat files (see your MS-Dos manual for information
  238. on how to do this).  You must make sure of two things:  A) You have SHARE.EXE
  239. loaded, and B) You have FILES=30 (or higher).  Normally, these can be
  240. accomplished by adding this line to your Autoexec.Bat file:  
  241. (It doesn't matter WHERE in the autoexec.bat, anywhere is fine)
  242.  
  243. C:\Dos\Share.Exe
  244.  
  245.   And this line to your Config.Sys line:  (It also does not matter WHERE)
  246.  
  247. FILES=30
  248.  
  249.   If your BBS will be running multi-node (in the trial edition, this only
  250. includes your free local node for sysop access) set at least 
  251. "FILES=10 x #ofNodes" where #ofNodes is how many nodes you wish to run 
  252. simultaniously.
  253.  
  254.   [Step 2]:  If you have not already done so, you should now install
  255. LightSpeed to your hard drive.  If you got your copy of LightSpeed from a 
  256. zipfile (The trial edition), run the batch file LsSetup.Bat like this:
  257.  
  258.     LsSetup C: \Ls
  259.  
  260.   If you wish to change the default drive or directory to install LightSpeed
  261. to, change the above to the drive and path you want.
  262.  
  263.   If you have LightSpeed on floppy disk, then simply type this:
  264.  
  265.     A:Install
  266.  
  267.   If your floppy disk drive is not drive A:, substitute the correct letter
  268. above.
  269.  
  270.   [Step 3]:  It is not required, but it is HIGHLY recommended that you
  271. create a RAM-Drive before using LightSpeed.  Even a tiny ram-drive of 
  272. as little as 100k might significantly improve LightSpeed's performance.
  273. For more information on creating ram-drives, consult your MS-DOS manual,
  274. however, most of the time all that is needed is adding this line to your
  275. Config.Sys file:
  276.  
  277.   Device=C:\Dos\RamDrive.Sys 1024 512
  278.  
  279.   You can also use "Devicehigh" in place of "Device" if you have upper 
  280. memory available.  The 1024 is the size of the ram-drive in KBytes, and
  281. can be changed to a smaller value if you have limited ram (It should be 
  282. at least 100) or a higher value if you have ram to spare (the more the
  283. better up to about 4 megabytes.)  To create the Ram-drive with extended
  284. (recommended, but requires a Himem.sys or similar driver) add a /E option.  
  285. To create the Ram-drive with expanded memory (requires EMM386, QEMM, etc) 
  286. add a /A option.
  287.  
  288.   [Step 4]:  Change to your LightSpeed directory (Type D:[Enter] where D is 
  289. the drive with LightSpeed, followed by Cd\Ls[Enter] if you choose the default
  290. path).  Run LSConfig.Exe and move through each item off the main menu until 
  291. you have setup your BBS as needed.  See LSConfig.Doc for help in using that 
  292. program.
  293.  
  294.   [Step 5]:  Now, modify the batch file in your LightSpeed directory named 
  295. Ls1.Bat.  Make sure the batch file has the correct drive letter specified to 
  296. find LightSpeed.  If you created a ram-drive larger than 500k and wish to 
  297. use it to hold display files as well (recommended) then follow the 
  298. instructions in the batch file for enabling such support.
  299.  
  300.   [Step 6]:  LightSpeed is ready to run now, and you can try it out by
  301. changing the your LightSpeed directory and typing Ls1[Enter].  You can use
  302. Alt-S or Alt-L to try your system out, and press F9 after you have your
  303. account setup to change your security class, usually to "Master", the
  304. most powerful security class by default.  To get a status bar, use the F2
  305. and F1 keys.  To modify your online time, use F7 and F8 or Ctrl-F7 and
  306. Ctrl-F8.  You have full access to the default system, and can access sysop 
  307. functions by pressing the ! key from most other menus.  (It is not listed 
  308. as an option on the menus, however it will still work.)  Play around with
  309. the system for a while.  When your done, you may wish to begin custimizing
  310. your new BBS system.
  311.  
  312.   [1.1 - Modifying the questionare...]
  313.  
  314.   A "questionare" is a text file which you can modifying which gives
  315. LightSpeed questions it will later ask your users.  The "answer" file
  316. is a text file created by LightSpeed which holds the answers your users
  317. give to your questions.  The "new user questionare" is presented to users
  318. when they create a new account on your system, and is needed to gather
  319. some basic information such as the user's name, phone number, address,
  320. terminal type, etc.  You can also use questionares to gather specialized
  321. information for a purpose other than creating an account.  For example,
  322. our BBS system uses a questionare called "Guest.Qst" which creates an
  323. answer file called "Guest.Out".  This questionare is presented to any
  324. user who logs on to our system as "Guest".  It gathers some quick 
  325. information, but is kept short so that users who are eager to try out
  326. LightSpeed can do so without having to take too long answering boring
  327. questions.  Almost all LightSpeed systems need a new user and registery 
  328. questionare.  Both have been provided with LightSpeed, however if you
  329. wish to modify them to suit your needs, here's how:
  330.  
  331.   You must use a text editor, such as MS-Dos EDIT, to modify the questionare
  332. file.  To start off with, you can edit the new user questionare included
  333. with LightSpeed (You should keep a backup however, in case you make a
  334. mistake.)  The file is \Ls\Quest\New.Qst.  When working with the included
  335. file, you'll notice some odd looking @C symbols inside many of the 
  336. quotation marks, these are explained more later, and are used to control
  337. the color of the text.  In all LightSpeed text files, uppercase and 
  338. lowercase are ignored, except when in quotation marks (which usually is 
  339. something shown to the user exactly as it appears in the quotations.)  
  340. You can indent as much as you like (Leave spaces at the start of the line),
  341. and it is recommended that you do so to make your file easier to read later.
  342. Blank lines are always ignored, and lines beginning with a ; are ignored.
  343.  
  344.   In questionares, lines that begin with a + are read to both the reader 
  345. and your answer file.  Lines that begin with - are placed in the answers 
  346. but hidden from your users.  Lines that begin with a | are read to the 
  347. user but not repeated in your answers.  Blank lines are also ignored.  To 
  348. ask a question, place an "Ask" statement in your questionare.  The format 
  349. of an Ask statement is:
  350.  
  351. ASK type [FORCE] [store] [NEW] "Question?"
  352.  
  353.   You may put whatever you like in place of "Question?" but the quotes must
  354. be there.  The keyword FORCE specifies that the user MUST give this
  355. information to continue.  They cannot press [ENTER] and leave it blank,
  356. for example, in a forced question.  The keyword NEW specifies that the
  357. question take two lines, this is usually not very important.  A question
  358. without NEW might appear like so:
  359.  
  360. What is your real name?  Micheal Smi_
  361.  
  362.   Where a question with NEW might show up like:
  363.  
  364. What is your real name?
  365. ] Micheal Smi_
  366.  
  367.   It is mostly a matter of personal taste, and sometimes you won't have
  368. enough space to fit the entire answer on a single line. 
  369.   'Type' can be any of the following, which tell LightSpeed what kind of 
  370. information you want:
  371.  
  372. ASK STRING...    Gets any information.
  373. ASK NUMBER...    Asks for a number.
  374. ASK CHARACTER... Asks for a single letter.
  375. ASK SPECIAL...   Asks for a formatted type (Explained later).
  376. ASK Y/N...       Asks a yes or no question.
  377. ASK CHOICE...    Asks a multiple choice question (Explained later).
  378. You can also use MULTIPLE and OPTION in place of CHOICE.    
  379.  
  380.   An Ask Special statement uses a slightly different format:
  381.  
  382. ASK SPECIAL [FORCE] [store] [NEW] "Format" "Question?"
  383.  
  384.   The "Format" is used by LightSpeed to force the user to answer in a 
  385. special way.  This is usually used with phone numbers, dates, times,
  386. and the like.  Your format might be: "(###)###-####" for a phone number.
  387. LightSpeed will display the "(   )   -    " parts as they reach them,
  388. by itself.  And for each # it encounters, it expects a number.  You can
  389. also use * characters to expect any letter, such as: "***" to expect 3
  390. letters for an answer, or "***-***" to expect 3 letters, then LightSpeed
  391. shows an - and finishes by expecting 3 more letters.  You might use the
  392. * character for a time: "##:## *m" and the user must enter 4 letters
  393. followed by a single letter.  An example special statement:
  394.  
  395. Ask Special Force New "##/##/##" "What is your birthdate?"
  396.  
  397.   Which would show up something like:
  398.  
  399. What is your birthdate?
  400. ] 01/2_
  401.  
  402.   Finally, the Ask Multiple statement allows your users to pick an option
  403. from a list of choices.  An example to start off with:
  404.  
  405. Ask Multiple "Where did you hear about this BBS from?"
  406. {
  407.   '1' "From a magazine"
  408.   '2' "From a friend"
  409.   '3' "From an ad"
  410.   '4' "From a program we sold"
  411. }
  412.  
  413.   Which would show up to the user as:
  414.  
  415. Where did you hear about this BBS from?
  416.  
  417.   [1]...From a magazine
  418.   [2]...From a friend
  419.   [3]...From an ad
  420.   [4]...From a program we sold
  421.  
  422. Selection? _
  423.  
  424.   The curly brackets after the Ask Multiple statement show the start and
  425. the end of the choices.  You MUST have both a start and end bracket ON
  426. THEIR OWN LINE as shown above, or LightSpeed will give you errors.  Inside 
  427. the brackets, is the list of the choices the user will be presented with.  
  428. One option is given on each line.  Each option has two parts to it, the KEY 
  429. and the TEXT.  The key is what key the user will press to choose that 
  430. option.  The text is what is shown to the user for the option.  The key is 
  431. always surrounded by single quotes (') and is one character.  The option is 
  432. always surrounded by double quotes (") and can use the full line if needed 
  433. (but only one line, the ending quote must be on the same line as the starting
  434. quote.)  You can have as many options as you want, but you must use a
  435. seperate key for each option or your users won't be able to select between
  436. them.
  437.  
  438.   The other Ask types are fairly self-explainatory.  Ask String asks the
  439. user for a single line of any kind of information.  Ask Number asks for
  440. a single line of numeric information.  Ask Character gets a single letter
  441. from the user.  Ask Y/N asks a yes or no question (it forces the user to
  442. either press Y or N).  
  443.  
  444.   That's all there is to questionares, except the [store] part.  However,
  445. you should now be able to create informational questionares for purposes
  446. such as getting a user's order for a product, or answering a poll.  
  447.  
  448.   The [store] part of the command tells LightSpeed that the answer the
  449. user gives is to be used by LightSpeed for some purpose.  For example:
  450.  
  451. Ask String Real "What is your real FULL name?"
  452.  
  453.   The above instructs LightSpeed to save the answer in "Real", which is
  454. short for "Real Name".  Later, when you look in the sysop database (Where
  455. you can review all the user's accounts) you'll see the user's real name
  456. matches whatever they answered here.  The options you can choose for
  457. store are as follows (You can only use one of them in a single question):
  458.  
  459.   [Note: Some storage types must be done in multiple-choice, and the
  460.    usual format is specified beneath them.  You can change the TEXT in
  461.    such multiple-choices to whatever you like, but keep the KEYS the same.
  462.    You can safely leave out any options you wish from the multiple choices,
  463.    but it disables the user's ability to select it.  This is usually okey,
  464.    but might not be a good idea when asking a user's sex.]
  465.  
  466.   REAL         ..Real name (Expects 2 words, checks for duplicates)
  467.   PASSWORD     ..Password (Forces the user to re-enter to verify)
  468.   VPHONE       ..Voice phone number (Checks for duplicates)
  469.   DPHONE       ..Data phone number
  470.   FROM         ..User's city & state
  471.   ZIP          ..User's zipcode
  472.   BDAY         ..User's birthdate  (Use special format: "##/##/##")
  473.   SEX          ..User's gender..
  474.     (Use multiple choice: in any order, as stated above)
  475.        'M' "Male"
  476.        'F' "Female"
  477.        'X' "Not disclosed"   [Optional]
  478.   TERMINAL     ..User's terminal type
  479.     (Use multiple choice: in any order, as stated above)
  480.     'N' "No-color"
  481.     'C' "Color"
  482.     'R' "Ripterm"          (If you have it enabled)
  483.     'A' "Auto-detect"      (AutoDetect when the user first connects)
  484.   LINES-       ..Number of lines on a user's screen (Use ASK NUMBER)
  485.   LINES+       ..Same, but displays 50 numbers and when using this type,
  486.                 ask what number is the first on their screen (or on the top)
  487.   PROTO        ..User's default file transfer protocol (Use ASK CHARACTER)
  488.   EDITOR       ..User's default mail editor
  489.     (Use multiple choice: in any order, as stated above)
  490.     'F' "Full-Screen (Requires ANSI)"     
  491.     'L' "Line-Editor"
  492.     'S' "Select each time"      
  493.     'A' "Autodetect"            (Determines by the user's terminal setting)
  494.   COMMENT1     ..For your own use, might be a good place for user's address
  495.   COMMENT2     ..For your own use
  496.      ...
  497.   COMMENT8     ..For your own use
  498.   REG.AGE      ..Registery "age" 
  499.   REG.PHONE    ..Registery "voice phone number"
  500.   REG.FIRST    ..Registery "first name"
  501.   REG.HOBBIES  ..Registery "hobbies"
  502.   REG.SPORTS   ..Registery "sports"
  503.   REG.BOARD    ..Registery "bbs name" (Also see IF statement below)
  504.   REG.BBSNUM   ..Registery "bbs number" (Also see IF statement below)
  505.   REG.LOOKS    ..Registery "appearances"
  506.   REG.STYLE    ..Registery "style" 
  507.   REG.MOVIE    ..Registery "Favorite movie"
  508.   REG.TVSHOW   ..Registery "Favorite TV Show"
  509.   REG.MUSIC    ..Registery "Favorite music"
  510.   REG.SUMMARY1 ..Line 1 of registery summary
  511.   REG.SUMMARY2 ..Line 2 of registery summary
  512.  
  513.   There are also 10 variables you can use as you wish.  These can hold
  514. a NUMBER, CHARACTER, Y/N, or MULTIPLE CHOICE answer in them.  You can later
  515. make decisions based on these variables.  They are used as I[x] as storage,
  516. where x is 0 through 9 (Like I[2] or I[6]).  For numbers, they hold the
  517. number between 0 and 65,000, for characters, they hold the letter the user
  518. pressed.  For multiple choices, they hold the KEY the user pressed.  For
  519. example, in a registery questionare, you might want to ask if a user owns
  520. his own BBS before asking what the name and number of it is.  So, you start
  521. by asking the yes or no question:
  522.  
  523. Ask Y/N I[1] "Do you operate a BBS? (Y/N) "
  524.  
  525.   Then, you decide what to do next by an "IF" statement in your questionare.
  526. The forms of an IF statement are:
  527.  
  528. IF [thought] = [thought]
  529. IF [thought] == [thought]
  530. IF [thought] >= [thought]
  531. IF [thought] > [thought]
  532. IF [thought] < [thought]
  533. IF [thought] <= [thought]
  534. IF [thought]
  535.  
  536.   Both = and == mean the same thing.  > means "greater than" and < means
  537. "less than".  >= means "greater than or equal to" and <= means "less than
  538. or equal to".  A single [thought] by itself performs the action if the
  539. [thought] comes out to be anything other than 0, otherwise it "isn't true".
  540. All "IF" statements must have a matching "ENDIF" statement, which is simply 
  541. ENDIF on its own line.  For our example:
  542.  
  543. Ask Y/N I[1] "Do you operate a BBS? (Y/N) "
  544. If I[1] == 'Y'
  545.   Ask String Reg.Board "What is the name of your BBS? "
  546.   Ask String Reg.Bbsnum "What is the number to your BBS? "
  547. Endif
  548.  
  549.   The indents are optional, but make it easier to read.  [thought]s can be 
  550. any number, any letter (in single quotations), or any of the variables.  
  551. Some examples:
  552.  
  553. IF 'A' == 'B'                             ...This could never be true
  554. IF 10 = 15                                ...This could never be true as well
  555. IF 5                                      ...This is always true
  556. IF 0                                      ...This is never true
  557. IF I[4]                                   ...This is true if I[4] isn't 0
  558. IF I[2] == 15                             ...This is true if I[2] is 15
  559.  
  560.   Finally, there are some other less-important commands you can use in your
  561. questionares.  
  562.  
  563.   The SHOW command displays a text file, which can be rip, ansi, or ascii.
  564. If the user is in RIP mode, LightSpeed looks for the file with the extension
  565. ".RIP", in ANSI mode ".ANS", in ASCII mode ".ASC".  Example:
  566.  
  567. SHOW INTRO.ish
  568.  
  569.   The .ish is replaced anyway and is ignored.  You don't need a . on the
  570. filename if you don't want, and the filename should NEVER be in quotations.
  571.   The EXIT command can end your questionare.  It CAN be used from within
  572. an IF statement to end your questionare early.  It is also not required,
  573. because when the end of the questionare file is reached, it is assumed you
  574. wanted to EXIT at that point.  However, in the new user questionare, you
  575. can also use the ABORT command to hang up the caller and end the questionare.
  576.   The SET command lets you modify a few settings, the three uses are:
  577.  
  578. SET SEC securityclass             ..Changes a user's security class
  579. SET EXPIRE numberofdays           ..Sets the user's expiration date 
  580.                                     to 'numberofdays' from now
  581. SET CREDITS number                ..Sets the user to have 'number' credits
  582.  
  583.   There is also a very rarely used command which may expanded on in future 
  584. versions called COPY, however it only copies two items at this time:
  585.  
  586. COPY COMMENT1->REG.STYLE
  587. COPY HANDLE->REAL
  588.  
  589.   The first simply copies whatever is in the COMMENT1 field of the user's 
  590. account to the user's registery style field.  The second copies
  591. whatever the user used to login as into their "real name".  A user's "real
  592. name" must be filled with something so that doors can identify a user.  With
  593. this method, you can use only "real names" on your system or use only 
  594. "handles" on your system (Using JUST handles is un-recommended, LightSpeed
  595. by default allows handles for all public operations, but it is advised that
  596. you keep the user's real name on record.)
  597.  
  598.   Last, except in the Trial version of LightSpeed which will ignore it, you
  599. can use:
  600.  
  601. DOOR filename
  602.  
  603.   To execute another program during the questionare.  This is a fairly
  604. simple command, although you should follow some guidelines to reduce any
  605. errors.  A) Always specify the path to your batch file as well as the batch
  606. file name.  B) Inside your batch file, always use .EXE, .COM, and .BAT after
  607. filenames you are executing to avoid conflicts.  Example:
  608.  
  609. DOOR "C:\Ls\LsVote.Bat"
  610.  
  611.   You can also make use of a few keywords after your filename with the
  612. DOOR command.  The first is DoorSys, which specifies that LightSpeed should
  613. ONLY create a door.sys dropfile.  The second is InfoLink, which specifies
  614. that LightSpeed should ONLY create an infolink.dat dropfile.  The third is
  615. Quick, which specifies that LightSpeed should not create any dropfiles. 
  616. Finally, you can add the Code or Codes keyword to add some environment
  617. variables.
  618.  
  619. %Code1% = Code[1]
  620. %Code2% = Code[2]
  621.   ...
  622. %Code5% = Code[5]
  623.  
  624.   Some examples of the keywords you can use:
  625.  
  626. DOOR "C:\Ls\LsVote.Bat" InfoLink
  627. DOOR "C:\Ls\Lord.Bat" DoorSys
  628. DOOR "C:\Ls\DoThis.Bat" Quick
  629. DOOR "C:\Ls\DoThat.Bat" Codes
  630. DOOR "C:\Ls\DoThem.Bat" DoorSys Codes
  631.  
  632.   Now, you'll want to know how you can make use of these questionares, which
  633. brings us to the most powerful feature in LightSpeed, the menuing system.
  634.  
  635.   [1.2 - Modifying the menu screens...]
  636.  
  637.   Before you can change what the user can do with your system, you must
  638. first know how to modify what your user sees.  Most BBS Sysops find a
  639. program named "TheDraw" very helpful for this.  Future versions of
  640. LightSpeed will have their own program for drawing ansi and ascii
  641. screens, but for now, it is recommended that you get a copy of TheDraw
  642. off a local BBS (it's quite common and should be easy to find).  
  643.  
  644.   LightSpeed always ignores a file's extension when it comes to display
  645. files.  For example, if it is told to display "MyFile.Duh" then its the
  646. same as saying just "MyFile" as LightSpeed will first look for "MyFile.Rip"
  647. (if rip is enabled), then "MyFile.Ans" (if ansi color is present), and 
  648. finally, it will try "MyFile.Asc" in all cases.  There are also special
  649. codes you can use in your display files.  More of these will be added
  650. later, but for now, they are:
  651.  
  652.   @PAUSE@      ..Prompts the user with a prompt before continueing
  653.   @CLS@        ..Clears the user's screen (and the local screen if needed)
  654.   @HOME@       .."Homes" the cursor to the upper left corner of the screen
  655.   @NONSTOP@    ..Turns off automatic pause prompting at the end of every page
  656.                  [This also disables the @PAUSE@ code, until @STOP@ is found]
  657.   @STOP@       ..Turns on automatic pause prompting at the end of every page
  658.                  [This "undoes" the @NONSTOP@ code at that point]
  659.   @IFBAUD+xxxx@    ..Proceeds only if the user's baud rate is at or greater
  660.                      than or equal to xxxx baud.  Otherwise, everything up
  661.                      until the @ENDIF@ code is skipped.  Example: 
  662.                      @IFBAUD+2400@
  663.   @IFBAUD-xxxx@    ..Proceeds only if the user's baud rate is less than
  664.                      or equal to xxxx baud.  Example:  @IFBAUD-14400@
  665.   @IFSEC=xxxx[,xxxx[,xxxx[...]]]@  
  666.   @IFSEC!=xxxx[,xxxx[,xxxx[...]]@
  667.                    ..Proceeds only if the user has a security class 
  668.                      named xxxx.  You can specify multiple security class
  669.                      seperated with commas.  If the != is specified,
  670.                      proceeds only if the user DOES NOT have a security
  671.                      class named xxxx.
  672.   @-@              ..Sends a "save cursor position" ansi code (if ansi is on)
  673.   @+@            ..Sends a "restore cursor position ansi code (if ansi is on)
  674.   @{x}@          ..Sets the background color to x, where x is any of the
  675.                    codes below:  (if ansi is enabled)
  676.   @x@            ..Sets the foreground color to x, where x is any of the
  677.                    codes below:  (if ansi is enabled)
  678.  
  679.     Bright colors         Dark colors                  Background colors
  680.     [Case matters]        [Case matters]               [Case is ignored]
  681.  
  682.       @1@  Grey       @o@ or @O@ (Letter O) Black        @{O}@  Black
  683.       @B@  Blue             @b@  Blue                    @{B}@  Blue
  684.       @G@  Green            @g@  Green                   @{G}@  Green
  685.       @C@  Cyan             @c@  Cyan                    @{C}@  Cyan
  686.       @R@  Red              @r@  Red                     @{R}@  Red
  687.       @M@  Magenta          @m@  Magenta                 @{M}@  Magenta
  688.       @Y@  Yellow           @y@  Brown                   @{Y}@  Brown
  689.       @W@  White            @w@  Dim White               @{W}@  Grey
  690.  
  691.   It is OK to use the @x@, @{x}@, @-@, and @+@ codes in an .ASC (Ascii,
  692. usually non-color) file.  And if you do so, an .ANS file isn't required at
  693. all.  If the user is in ansi mode, the .ANS file doesn't exist, and @x@ style
  694. codes are found in the .ASC file, LightSpeed will use those to set the
  695. coloring.  If the user is in ascii mode, @x@ style codes are just ignored.
  696. However, TheDraw does not make it easy to use the @x@ codes (when you change
  697. the color in TheDraw, you are changing the ANSI color, NOT with @x@ codes)
  698. therefore it is recommeded that you stick to creating a seperate .ANS and
  699. .ASC file for your users.  You can use the other @xxx@ codes like @CLS@ and
  700. @PAUSE@ in any of your LightSpeed display files, .RIP, .ANS, and .ASC.
  701.  
  702.   INSIDE of LightSpeed, when YOU or your users are using the system, you
  703. can enter the @x@ color codes in places such as messages to other users
  704. etc., but you do not attach the second @ to it.  For example, what is @R@
  705. for bright red in your display files is instead @R in a message to change
  706. the color to bright red.  And @{B}@ to change to a blue background would
  707. become @{B} in a message.  Also, inside LightSpeed, the code for black
  708. becomes @{0} (with a zero) instead of @{O}@ (with an "oh" letter).
  709. This confusion will hopefully be simplified in a later version.
  710.  
  711.   Keep in mind, you don't normally need to use the @PAUSE@ codes.  LightSpeed
  712. automatically displays a pause prompt after every screenful in your display
  713. file, the pause prompt looks like:
  714.  
  715. -=Pause=-  [C]ontinue, [N]onstop, or [S]top?
  716.  
  717.   The user hits ENTER or C to continue, and the pause prompt is erased if
  718. possible.  The user can press N to have the same effect as @NONSTOP@, and
  719. pause prompts will not be displayed until the display file ends or until
  720. a @STOP@ code is reached (The @NONSTOP@ code and [N]onstop mode are
  721. interchangable.)  Nonstop is usually selected by a user who wants to capture
  722. something with their terminal program.
  723.  
  724.   Also, in a few LightSpeed display files, you may notice @.xx@ codes,
  725. with a number from 0 to 49 in place of the xx, such as @.21@ which are used
  726. to tell LightSpeed it needs to display some information at this point.
  727. The exact information is different for each display file that uses these
  728. special codes, so if you see them, make sure the @.xx@ is not modified (it
  729. is safe to relocate it, and change the rest of the display file, but make
  730. sure the @.xx@ codes themselves are not removed or changed, or the 
  731. information tied to it will not be shown.)  An example of this is the
  732. "Statistics" display file.  There is one place where you may want to add
  733. @.xx@ codes of your own: Menu display files.  Explained more later, 
  734. "codes[]" are a group of numbers you can modify for your own use, and if 
  735. you want to display them in a menu, use the first ten @.xx@ codes.  This is 
  736. very rare and not normally needed.
  737.  
  738.   Finally, the actual display files you will work with are in three different
  739. locations.  The first kind are "menu display files" which are what the user
  740. sees for a "main menu" or "file menu" and tells them what they can do from
  741. there.  These are held in \Ls\Menu by default.  One display file exists for 
  742. each .CON file (these are explained more in the next section, and the .CON 
  743. file tells LightSpeed what the menus can do.)
  744.   
  745.   Then, the "general display files" are held in \Ls\Disp.  These are used
  746. for different purposes, a few that are normally available (they don't HAVE
  747. to be there, and some of them don't exist, but you can create them anytime
  748. you want.)
  749.   
  750.   PrelogA.xxx   ..Shown before a user enters their alias.
  751.   PrelogB.xxx   ..Shown in place of PrelogA for slower than 9600 baud users.
  752.   Hello1.xxx    ..Shown right after a user logs in.
  753.   Hello2.xxx    ..Shown after Hello1.xxx.
  754.     ...
  755.   Hello9.xxx    ..Shown after Hello8.xxx.
  756.   News.xxx      ..Holds the latest news (shown from main menu usually)
  757.   Goodbye.xxx   ..Shown after user selects to log[O]ff or [G]oodbye.
  758.   PreSysop.xxx  ..Shown before a sysop chat begins
  759.   PstSysop.xxx  ..Shown after a sysop chat ends
  760.   PreUl.xxx     ..Shown before user begins upload information sequence
  761.   Upload.xxx    ..Shown as header for file description screen (Use caution
  762.                   ..when modifying this one)
  763.   Proto.xxx     ..Shown when selecting transfer protocal (See file transfers)
  764.   Closed.xxx    ..Shown to a user on a Closed system (See also: LSConfig.Doc)
  765.  
  766.   Finally, the "bulletin" or "information" files are held in \Ls\Bull.  
  767. These are usually shown when a user selects a choice from the "Information"
  768. menu.  These are explained more later.
  769.  
  770.   [1.3 - Modifying the menu system...]
  771.  
  772.   Now, the most crucial part of the LightSpeed system.  Its flexible
  773. menuing system.  The menuing system is what gives you the freedom to do
  774. so much with LightSpeed, and present it in whatever form you want.
  775.  
  776.   First, you've already seen what are the DISPLAYS for menus.  But, that is
  777. only a front that the user sees.  What a menu actually DOES is controlled
  778. by the .CON files in your \Ls\Menu directory.  These are text files in a
  779. format slightly like what was used by the questionares.  They are called
  780. "menu control files" or just "control" files for short.  
  781.  
  782.   Just like with the questionares, you can have blank lines in control
  783. files, and lines starting with a ; are ignored.  It is also safe to indent
  784. as much as you like.  However, any command in a control file must be in 
  785. this format:
  786.  
  787. - COMMAND ["Information"] ["Information"] [...]
  788. COMMAND ["Information"] ["Information"] [...]
  789. 'k' COMMAND ["Information"] ["Information"] [...]
  790.  
  791.   The k is a single letter which the user must press to activate the command.
  792. For example, if the command is to download a file, the k or key might be
  793. D for download.  If no key and no - is specified, the command is executed 
  794. everytime the user is at this menu.  The - is explained later, but is 
  795. executed everytime the menu is redisplayed.  An example, a command with no
  796. key (executed everytime the user reaches this menu):
  797.  
  798. Status "Main Menu"
  799.  
  800.   (That is a valid command)  A command with no key not only executes every
  801. time the user is at this menu, but everytime the user presses a key at this
  802. menu, no matter what that key is.  The word "Status" tells LightSpeed what 
  803. you want it to do here, it is the actual command.  "Main menu" is some 
  804. information to go along with the command.  In this case, the "status 
  805. display" is what other users see when they select to see [W]ho's online.  
  806. For example:
  807.  
  808.   [User pressed W for Who's online]
  809.   Baud    User                Sex        Status
  810.   2400    King Burgundy       Male       File System
  811.   14.4k   Rev.Pslock Macro    Male       Main Menu
  812.   14.4k   Dalbeth             Female     Games Menu
  813.  
  814.   The status of Rev.Pslock Macro was set when he entered the main menu and 
  815. a line in the main menu CON file (Main.Con by default) read as above.  The 
  816. status of King Burgundy was probably set when he entered a file menu CON 
  817. file (File.Con by default) and this line was found:
  818.  
  819. Status "File System"
  820.  
  821.  [ Hint for more advanced users: To save you worrying about when you need
  822. quotes and not, just remember this rule:  Anytime you need a phrase that
  823. includes more than word, a space, you must enclose it in quotations.  All
  824. other times, you may leave out quotations.  You must ALWAYS leave quotations
  825. out of the command, in the above example that was the keyword Status. ]
  826.  
  827.   Now, if a user selects to do something other than flip between menus?  
  828. What if a user wants to enter a game?  How can you make the status read 
  829. "Playing Phobia", where Phobia is the name of a game?
  830.  
  831. 'P' Status "Playing Phobia"
  832.  
  833.   With that statement, anytime the user presses P their status is immidiately
  834. changed to read "Playing Phobia".  Notice there is a key listed this time, 
  835. the P key, which means that pressing P is what triggers the command.  
  836.  
  837.   An important rule to remember when working with the menu system is that
  838. you can have an infinite number of commands for each key.  That is especially
  839. true of something like the above Status command, since you don't want a user
  840. to have to hit P just to set their status display.  The order in which 
  841. LightSpeed handles the commands is the order in the control file.  For 
  842. example:
  843.  
  844. 'P' Status "Playing Phobia"
  845. 'P' Door "Phobia.Bat"
  846.  
  847.   In this case, the user presses P only once, in which LightSpeed FIRST
  848. sets the user's status to read "Playing Phobia" and THEN it activates the
  849. door in Phobia.Bat (More on that later.)  
  850.  
  851.   There are over 30 different commands involved in control files.  However
  852. not all of them are very important.  So before we go into each command, there
  853. are a few very frequently used ones that should be covered.  First, the
  854. MENU command.
  855.  
  856.   The MENU command is relatively simple.  It simply changes to a different
  857. menu control file when a user presses a key (of course you could use it
  858. without a key, but there's rarely need for that.)  An example that is 
  859. commonly used is the command to go to the "File menu":
  860.  
  861. 'F' Menu "File.Con"
  862.  
  863.   So, if the user hits F, the current menu terminates.  Then, the display
  864. file matching File.Con is shown (\Ls\Menu\File.Rip, .Ans, or .Asc) and then
  865. LightSpeed begins operating from File.Con, at which point it will probably
  866. wait for the user to press another key.  Keep in mind that the MENU command
  867. is one reason that LightSpeed will NOT handle every command in the current
  868. menu.  For example:
  869.  
  870. 'F' Status "File System"
  871. 'F' Menu "File.Con"
  872. 'F' Door "Files.Bat"
  873.  
  874.   In this example, LightSpeed can never perform the 3rd command, the DOOR
  875. command, because it will already have terminated having anything to do with
  876. this menu when it reaches the MENU command.  However the 1st command BEFORE
  877. the MENU command is acceptable.
  878.  
  879.   The MENU command also allows you to modify one of the Codes variables
  880. (explained later.)  If you specify a number or value after the menu 
  881. filename, Code[0] will be set to that value from this command.  Note
  882. however, that you cannot use the keywords ON or OFF here, as you can with
  883. the SET command explained later.  Examples:
  884.  
  885. 'A' Menu "File.Con" All
  886. '1' Menu "File.Con" 1
  887. '2' Menu "File.Con" 2
  888.  
  889.   The above would set Code[0] to All (which is the same as 0), 1, or 2 when
  890. the A, 1, or 2 keys are pressed.
  891.  
  892.   Another important command is the SHOW command.  The SHOW command displays
  893. a .Rip, .Ans, or .Asc file to the user.  This file is treated just like any
  894. other display file, and is usually kept in either the \Ls\Disp or \Ls\Bull
  895. directories.  The SHOW command is most used in the "Information" or 
  896. "Bulletin" menu.  For example, if you have 3 bulletins in your menu:
  897.  
  898. '1' Show "Bull1.xxx"
  899. '2' Show "Bull2.xxx"
  900. '3' Show "Bull3.xxx"
  901.  
  902.   Pressing 1 displays the file Bull1.Rip, .Ans, or .Asc to the user.  So
  903. on with the other two commands.  
  904.  
  905.   The DOOR command works just like in questionares.  All 4 keywords are
  906. also supported here.
  907.  
  908.   The IF command provides a great deal of LightSpeed's flexibility.  The
  909. IF command is best demonstrated by the need to allow only selected people
  910. into the sysop menu (The sysop menu holds commands for system control such
  911. as the user database which lets the sysop view and change any user's account 
  912. information.)  
  913.  
  914. '!' If Sec "Sysop, Master"
  915.   '!' Menu "Sysop.Con"
  916. '!' Endif
  917.  
  918.   This example takes effect when the user presses the ! key.  First, the
  919. IF statement is encountered.  LightSpeed thinks "this guy IS a sysop, its
  920. okey to go on."  So it encounters the Menu command and jumps off to that
  921. menu.  What if the user ISN'T a sysop?  LightSpeed would ignore the MENU
  922. command, and any commands, until it reaches the ENDIF command.  Why is it
  923. checking that the user is a sysop?  Because the "Sec" is short for Security,
  924. and (in this example) sysops have either "Sysop" or "Master" security 
  925. classes.  The example is TRUE when the user has security classes of Sysop or
  926. Master, and is FALSE when the user has any other security class.  When an
  927. IF statement is TRUE, it executes the commands that are between the IF and
  928. ENDIF.  When an IF statement is FALSE, it does NOT do execute any of the
  929. commands that are between the IF and ENDIF, and continues with any commands
  930. PAST the endif.  
  931.  
  932.   There are multiple forms of the IF command.  However all forms of the IF 
  933. command require a matching ENDIF statement later.  IF commands can be nested,
  934. which means you can have an IF inside an IF inside an IF...  There are many 
  935. different uses of the IF command.
  936.  
  937. 'k' IF ASK YES/NO              
  938.  
  939.   This simply waits for user to press Y or N.  You specify EITHER Yes or No
  940. in your command.  If the user hits Y and you specified YES, the IF statement
  941. is true, if the user hits Y and you specified NO, the IF statement is false.
  942. Examples:
  943. 'P' If Ask Yes
  944.   ...Whatever commands are here will only happen when the user pressed Y...
  945. 'P' Endif
  946.  
  947. 'k' IF CODE[x] ON/OFF/comparison [####]          ..This is explained later.
  948.  
  949. 'k' IF UPDATED "filename,filename,filename,..."       
  950.  
  951.   In the above, the IF statement is true if any of the filenames have been 
  952. modified since the user's last call.  You can specify any number of filenames
  953. seperated by commas.  For example:
  954.  
  955. 'N' If Updated "Bull1.xxx,Bull2.xxx,Bull3.xxx"
  956.  
  957. 'k' IF FLAG[x] ON/OFF
  958.  
  959.   The above command may not work in this early version, however it would 
  960. allow you to do some extra "grouping" of users.  "Flags" can be set to a 
  961. number, a number of days, by the sysop.  Each user can have 20 different 
  962. flags (the "x" in the above states which one is being checked here.)  After 
  963. the number of days, or if the flag is never turned on by the sysop, the flag 
  964. is turned "OFF".  Otherwise the flag is turned "ON".  Specify EITHER ON or 
  965. OFF in the IF statement just like with the If Ask (Yes or No) command.
  966.  
  967. 'k' IF SUBMENU[x] ON/OFF
  968.  
  969.   The above command may not work in this early version, however it would 
  970. allow you to turn off parts of the system after a set amount of time.  For 
  971. example, say you didn't want any users to use the file system more than 30 
  972. minutes a day, but you don't mind them playing doors for up to 60 minutes a 
  973. day?  To fill this scenario, you would give the user 60 minutes a day total 
  974. (done by their security class) and use this to enter the file system (This 
  975. would be placed in the MAIN control, main.con, and controls the user's 
  976. ability to GET TO the FILE control, file.con):
  977.  
  978. 'F' If Submenu[1] On
  979.   'F' Menu "File.Con"
  980. 'F' Endif
  981.  
  982.   And finally, you set the security class you want modified.  Under LSConfig,
  983. you would go to the security class of interest, and select "Submenu levels",
  984. and set submenu-one to "30" for 30 minutes a day.  The above IF statement
  985. would be true for the first 30 minutes a user is online each day.
  986.  
  987. 'k' IF AGE comparison xxx
  988.  
  989.   In the above, 'comparison' can be >, >=, <, <=, ==, or = marks.  The xxx
  990. is any number.  This simply allows you to limit commands to certain age
  991. groups.  For example:
  992.  
  993. 'D' If Age >= 21
  994.  
  995.   Make sure you have spaces between AGE, comparison, and the number, but 
  996. NO spaces in comparison.  If Age>=21 would NOT work.  If Age > = 21 would
  997. NOT work.  But If Age >= 21 would work.  This applies to all "comparison"
  998. style IF statements.  The above IF statement is true if the user's age was
  999. 21 or over.  
  1000.  
  1001.   Comparisons can be:
  1002.  
  1003.     >            ...meaning "greater than"
  1004.     >=           ...meaning "greater than or equal to"
  1005.     ==           ...meaning "equal to"
  1006.     =            ...meaning "equal to"
  1007.     <            ...meaning "less than"
  1008.     <=           ...meaning "less than or equal to"
  1009.     !            ...meaning "not equal to"
  1010.     !=           ...meaning "not equal to"
  1011.  
  1012. 'k' IF BAUD comparison xxxxx
  1013.  
  1014.   The above works just like the AGE statement, except it checks what the
  1015. user's baud rate is.  xxxxx might be 2400, 9600, 14400, etc.  You can NOT
  1016. use commas, periods, letters, or anything else inside your number (such as
  1017. 14.4k.  It would NOT work, you must use 14400 instead.)  
  1018.  
  1019. 'k' IF ANSI ON/OFF
  1020.  
  1021.   The above tests if the user has Ansi color enabled, RipTerm enabled, or 
  1022. is using LTerm with color enabled.  You specify EITHER ON or OFF.  IF ANSI
  1023. OFF is only true of ASCII (Non-color) users.
  1024.  
  1025. 'k' IF RIP ON/OFF
  1026.   
  1027.   The above tests if the user has RipTerm enabled.  You specify EITHER ON
  1028. or OFF.
  1029.  
  1030. 'k' IF DOORLEVEL comparison xxxx
  1031.  
  1032.   All security accounts have a setting named DoorLevel.  In a Door.Sys
  1033. door, this is the only setting the door has to indicate a user's security
  1034. level, so the number here is an alternative way of saying "this user is
  1035. un-paid" or "this is a sysop", depending on the value of DoorLevel.  This
  1036. setting can also be used by menus for whatever reason you choose.  The
  1037. value is set in LSConfig:Security Classes.  It is always a number.
  1038.  
  1039. 'k' IF NEW PRIVATE/PERSONAL/PUBLIC[S]/POST[S]
  1040.  
  1041.   The above is true if the user had new mail of the specified type waiting.
  1042. See also: The Mail System.
  1043.  
  1044. 'k' IF SEC "class,class,class..."
  1045.  
  1046.   The above is true if the user's security class is one specified.  For
  1047. example:  
  1048.  
  1049. '!' If Sec "Sysop,Master"
  1050.   '!' Menu "Sysop.Con"
  1051. '!' Endif
  1052.  
  1053.   The above would allow only users with the security class of either "Sysop"
  1054. or "Master" into the Sysop menu.  
  1055.  
  1056. 'k' IF -SEC "class,class,class..."
  1057.  
  1058.   The above proceeds only if the user's security class is NOT listed.  This
  1059. statement is best used in denying certain users privilages, an example
  1060. might be:
  1061.  
  1062. 'T' If "-Sec" "Demo"
  1063.   'T' Door "Teleconf.Bat"
  1064. 'T' Endif
  1065.  
  1066.   The above might prevent user's with the security class of "Demo" from
  1067. entering Teleconference.  The command can also be used to lock out unwanted
  1068. users from selected operations, for example:  Preventing users who has caused
  1069. trouble before in a game from getting into it again.
  1070.  
  1071. 'k' IF USER "handle,handle,handle..."  
  1072.  
  1073.   Tip:  Handle means the same as user alias.
  1074.  
  1075.   This command allows even more descresion upon who can use parts of the
  1076. system.  It allows only users that have a handle specified in the list
  1077. to proceed.  This command could be used to allow only a single person, or
  1078. a small group of named persons to do certain operations.  The most obvious
  1079. use is the sysop menu by specifying only the sysops in the list, however it 
  1080. is generally better to use a security class for that.  Example:
  1081.  
  1082. 'L' If User "Terror,Bob,Evil"
  1083.   'L' Door "Lord.Bat"
  1084. 'L' Endif
  1085.  
  1086.   The above would allow exactly 3 users to open a door named Lord.Bat.  
  1087. No-one except Terror, Bob, and Evil users could enter it.
  1088.  
  1089. 'k' IF -USER "handle,handle,handle..."
  1090.  
  1091.   This command is extremely useful in preventing unwanted users from getting
  1092. into places they shouldn't be.  It is true only if the user's handle is NOT 
  1093. listed.  For example:
  1094.  
  1095. 'W' If -User "Runningfrog"
  1096.   'W' Door "lsWall.Bat"
  1097. 'W' Endif
  1098.  
  1099.   The above would allow all users into "lsWall.Bat" EXCEPT for one who goes
  1100. by the alias of Runningfrog.  
  1101.  
  1102. 'k' IF NODE comparison xxx
  1103.  
  1104.   The above tests which node the user is on.  This can allow you to proceed
  1105. differently for different nodes.  The most common use is when you have a
  1106. door that for some odd reason won't work on certain nodes (say you have a
  1107. slow modem on node 2 and it doesn't work with your door.)  Here is how you
  1108. could still use that door on a different node:
  1109.  
  1110. 'L' If Node != 2
  1111.   'L' Door "Phobia.Bat"
  1112. 'L' Endif
  1113.  
  1114. 'k' IF LTERM ON/OFF
  1115.  
  1116.   The above is true when the user is using LightTerm.  This does NOT
  1117. necisarily mean that the user is using color or graphics, it checks ONLY if
  1118. the TERMINAL PROGRAM they are using is LightTerm (LTerm), which is the
  1119. companion program to LightSpeed.  You specify EITHER ON or OFF.
  1120.  
  1121. 'k' IF PASSWORD "xxxxxx"
  1122.  
  1123.   When all else fails, just password it.  In the above, LightSpeed will ask
  1124. for a password from the user.  If the password they enter matches, not
  1125. counting case then the IF statement is true.  Case is upper or lowercase 
  1126. letters, in here means the password BOB is the same as bOb or BoB or bob.
  1127. For example, you could password protect a door so only certain users could
  1128. use it:
  1129.  
  1130. 'L' If Password "OpenUp"
  1131.   'L' Door "Phobia.Bat"
  1132. 'L' Endif
  1133.  
  1134.   Those are all the IF statements available to you.  There is a little
  1135. additional flexibility on the IF statements, however.  You can use an ELSE
  1136. statement to provide two courses of action.  For example:
  1137.  
  1138. '!' If Sec "Sysop,Master"
  1139.   '!' Menu "Sysop.Con"
  1140. '!' Else
  1141.   '!' Display "Sorry, you do not have access to the sysop menu."
  1142. '!' Endif
  1143.  
  1144.   The above simply gives a polite reason why the ! key will not work for
  1145. them.  The DISPLAY command just shows a single line of text to the user.
  1146. The above would probably only be needed if the ! was listed in a menu
  1147. display, however they are valid commands.   
  1148.  
  1149.   Finally, there is one last major point to understand.  LightSpeed's
  1150. "jumping off" point is the menu control file "Start.Con" in your \Ls\Menu
  1151. directory.  This is the first menu used by LightSpeed, and contains what
  1152. could be considered the "login sequence" which is everything that normally
  1153. happens before a user reaches the main menu.  
  1154.  
  1155.   You should now understand all the basic form to the menu control files.
  1156. The above gives you the flexibility to make your BBS whatever you choose.
  1157. However, there are additional commands that are almost certainly needed by
  1158. every BBS.  They begin with the ability to handle credits.
  1159.  
  1160. 'k' RATE xxx
  1161.  
  1162.   The RATE command simply sets the consumption rate for the user's credits.
  1163. LightSpeed by default uses around 5 credits per minute.  (Most other BBS
  1164. systems operate on a per-second basis)  The RATE command can be placed
  1165. anywhere you like, and as soon as it is reached it CHANGES how many credits
  1166. are being used at the present time.  For example, you might want to increase
  1167. the credit usage whenever a user enters the file menu:
  1168.  
  1169. 'F' Rate 7
  1170. 'F' Menu "File.Con"
  1171.  
  1172.   It is also practical to use no key in front of Rate and set it in your 
  1173. menu.  Remember to set your rate to start off with somewhere in
  1174. Start.Con.  Also remember that the rate is adjusted automatically by the
  1175. hourly charging system (General configuration in LSConfig).  You may also
  1176. set the Rate to 0, probably somewhere in your Start.Con, to disable credit
  1177. consumtion.  You could set it to 0 in your Start.Con and LEAVE it that way
  1178. to disable the use of credits on your BBS (as long as you also leave out
  1179. any Charge commands, as explained now).
  1180.  
  1181. 'k' CHARGE xxxx
  1182.  
  1183.   The CHARGE command is an alternative way of using credits.  The charge
  1184. command does not effect the minute-by-minute rate of credit consumption, 
  1185. rather, it takes a sudden gulp out of the user's credit stash.  For example,
  1186. you could charge 20 credits for paging the sysop (which would certainly
  1187. reduce how many people page you). 
  1188.  
  1189. 'P' Charge 20
  1190. 'P' Internal 0 5
  1191.  
  1192.   The above may seem a little confusing.  In addition to having 30 different
  1193. commands in menu control files, there are about 15 more commands classified
  1194. just as "internal".  The INTERNAL command is how you perform numerous
  1195. operations, including, paging the sysop (Internal command 0-5).
  1196.   To tie a few ideas together, you could even ASK the user if they want to
  1197. pay the 20 credits before paging the sysop.  
  1198.  
  1199. 'P' Display "Paging the sysop costs 20 credits, continue?  (Y/N)  "
  1200. 'P' If Ask Yes
  1201.   'P' Charge 20
  1202.   'P' Internal 0 5
  1203. 'P' Endif
  1204.  
  1205.   The above displays the question, waits for the user to answer the question,
  1206. then "if the user answered yes" it proceeds to "charge the user 20 credits"
  1207. and finally "to page the sysop".  
  1208.  
  1209.   For purposes of security, LightSpeed provides what is called "activity
  1210. logs".  These logs are text file which LightSpeed writes as users perform
  1211. various activities.  A few things can be logged by LightSpeed itself, such
  1212. as a sysop chat.  Others, can only be logged by the menus.  The ADDLOG
  1213. command is responsible.
  1214.  
  1215. 'z' ADDLOG "text to be logged"
  1216.  
  1217.   Activity Log text can have some special things in it.  Additional @codes@
  1218. of sorts.  The four codes are:  @USER@, @SEC@, @TIME@, and @DATE@  Each is
  1219. replaced by something.  @User@ is replaced by the user's handle.  @Sec@ is
  1220. replaced by the name of the user's security class.  The @Time@ and @Date@
  1221. are replaced by the current time and date when the logging is being done.
  1222. For example:
  1223.  
  1224. 'T' AddLog "@USER@ is entering Teleconference at @TIME@ on @DATE@."
  1225.  
  1226.   What about some gadgets?  Well, throughout the menu control files, you
  1227. have 10 variables available to you.  All 10 of them are "integers" (meaning
  1228. that they are numbers).  The most common use for them is probably adding
  1229. "randomization" to your system.  With a little help from them, you can make
  1230. your BBS take a different course of action at random.  This is best used
  1231. to automatically change your displays regularly.  Some users get easily 
  1232. bored of the same screens over and over.  Take the prelog for instance, 
  1233. they will see it every time they call your system.  What if you could have 
  1234. 10 different prelogs instead of just 1?  This is first done by "picking a
  1235. number from 1 to 10."  The RANDOM command:
  1236.  
  1237. 'k' RANDOM Code[x] xxxx
  1238.  
  1239.   The Code[x] just says which variable to place the random number in, where
  1240. the x is from 0 to 9, such as Code[2] or Code[7].  The variables in control 
  1241. files are named "Codes".  The xxxx is how high of a number LightSpeed can
  1242. pick (from 0 to xxxx).  One of the IF statements we ignored earlier is 
  1243. used to find out what is in the Code[].  The IF statement has 3 forms:
  1244.  
  1245. 'z' IF Code[x] ON
  1246. 'z' IF Code[x] OFF
  1247. 'z' IF Code[x] comparison xxxx
  1248.  
  1249.   On and Off aren't very important right now.  Comparison works just like
  1250. in most other IF statements.  An example using RANDOM and IF Code[x]:
  1251.  
  1252. Random Code[1] 10
  1253. If Code[1] >= 4
  1254.   Show "Prelog1.xxx"
  1255. Else
  1256.   If Code[1] < 2
  1257.     Show "Prelog2.xxx"
  1258.   Else
  1259.     Show "Prelog3.xxx"
  1260.   Endif
  1261. Endif
  1262.  
  1263.   The above is a little more complicated than usual.  First, it gets the
  1264. random number and places in it in Code #1.  Then, we check "if the 
  1265. random number was greater than or equal to 4", which has a 50% percent
  1266. chance of happening (The number could be anywhere from zero to 9, because
  1267. we told random "limit of 10".)  If it WAS higher than or equal to 4, we
  1268. display Prelog1.Rip, .Ans, or .Asc and are done.  If it WASN'T, then we 
  1269. proceed to the ELSE part.  The first thing we do now is check "if the random 
  1270. number was less than 2", which has about a 30% percent chance of happening.
  1271. If it WAS less than 2, we display Prelog2.Rip, .Ans, or .Asc and are done, 
  1272. if it WASN'T, we do what the ELSE says instead, in which case we display
  1273. Prelog3.Rip, .Ans, or .Asc and are done with.  
  1274.  
  1275.   Although there's very little need for it, you can also give Code[]s a
  1276. value yourself:
  1277.  
  1278. 'z' SET Code[x] xxxx
  1279.  
  1280.   The above just fills code #x with the value xxxx, just like a random
  1281. command except that the value is ALWAYS xxxx.  
  1282.  
  1283.   Then there's a few commands you may need for keeping things nice looking:
  1284.  
  1285. 'z' ENTER
  1286. 'z' PRESS
  1287.  
  1288.   ENTER just shows a prompt and waits for the user to press Enter/Return.
  1289.   PRESS just shows a prompt and waits for the user to press any thing (The
  1290. only problem with this is, although easier for the user, line noise can
  1291. also pass for a key they've pressed.)  
  1292.  
  1293.   If you ever get tired of the General Configuration you've made in LSConfig,
  1294. you can switch to another one in mid-operation by this command:
  1295.  
  1296. 'z' CONFIG "filename"
  1297.  
  1298.   You'd have to use the MS-Dos COPY command to get a second General
  1299. Configuration made in a different file.  The default filename is "Config.Dat"
  1300.  
  1301.   The PRINT and DISPLAY commands just send short messages to the screen
  1302. and user.  The DISPLAY command shows a line and then a line-feed (Moves
  1303. down the next line on the screen), where the PRINT command shows ONLY what
  1304. you've told it to (You can use PRINT 3 or 4 times on the same line of the
  1305. screen, but DISPLAY only once.)  
  1306.  
  1307. 'z' DISPLAY "your text here"
  1308. 'z' PRINT "more text here "
  1309. 'z' PRINT "this would be written on the same line" 
  1310.  
  1311.   The above would show up as:
  1312.  
  1313. your text here
  1314. more text here this would be written on the same line
  1315.  
  1316.   The LOGIN command is normally used only once in your START.CON file.  It  
  1317. is the point at which LightSpeed prompts the user for their handle and
  1318. password.  It is perfectly safe to perform most operations BEFORE the LOGIN
  1319. command, however you should use a little caution, and keep in mind that
  1320. a user who has not given their name and password only has about 5 minutes
  1321. to do so before being disconnected.  
  1322.   There are multiple uses for moving the LOGIN command around.  You could
  1323. "split" your system up into multiple BBSes if you wanted.  You might do so
  1324. by presenting a menu with 3 or 4 different BBSes listed, and each one take
  1325. another path.  Although it is also possible (and recommended) to "split"
  1326. your system up AFTER the user has logged on (The first thing they do,
  1327. perhaps?)  Normally, Start.Con has no matching menu screen (No Start.Rip,
  1328. Start.Ans, or Start.Asc) however you CAN create one if you like.
  1329.  
  1330.   The LOGOFF command works the opposite.  In LightSpeed, it disconnects the
  1331. user and waits for for more calls.  In a door using LightSpeed's menu control
  1332. files, it exits the door and returns to the BBS.  You may have difficulty
  1333. finding the LOGOFF command in the default menus.  That's because it is a
  1334. "global" command.  "Global" commands are ones which execute from any menu,
  1335. and are Global for the purpose of speeding up the system and not having to
  1336. repeat adding them to every single menu you have.  The globals are just like
  1337. all other menu control files, except A) Even if you erase all the global 
  1338. commands, the Globals.Con file must still exist in your LightSpeed \Menu
  1339. directory.  And B) A display file for globals will be ignored 
  1340. (Global.Rip, .Ans, or .Asc).  Finally C) Globals are executed BEFORE other 
  1341. menu commands.  
  1342.  
  1343.   The QUEST command is very simple.  It begins a questionare like you learned
  1344. about above.  Automatically, LightSpeed expects a new user questionare for
  1345. any "Open system".  This is usually the New.Qst file in your \Ls\Quest
  1346. directory, but you may have changed it with LSConfig.  The other normal
  1347. place for using a QUEST command is the registery menu, where a questionare
  1348. allows you to give the information for your "reg".   
  1349.  
  1350. 'z' QUEST "filename"
  1351.  
  1352.   Example:
  1353.  
  1354. 'F' Quest "Reg.Qst"
  1355.  
  1356.   The "questionare answer file" is always the same file with the extension
  1357. .Out attached (in this case, Reg.Out.)  Although LightSpeed only uses
  1358. questionares by default for new users and registeries, you can use
  1359. additional questionares if you choose, probably for the purpose of some
  1360. information gathering you may need.
  1361.  
  1362.   Although it is recommended you avoid using it if possible, there is a
  1363. command called BREAK.  The BREAK command stops reading that key at that
  1364. point (it COULD be used without a key but would serve no realistic purpose.)
  1365. For example:
  1366.  
  1367. 'P' Display "This line is fine"
  1368. 'P' Break
  1369. 'P' Display "This line can never be seen"
  1370.  
  1371.   Although that is also un-realistic, as the only real use for a BREAK is
  1372. in an IF statement.  
  1373.  
  1374. 'P' Display "Continue on?  (Y/N)  "
  1375. 'P' If Ask No
  1376.   'P' Break
  1377. 'P' Endif
  1378. 'P' Display "This line can only be seen if the user answered YES"
  1379. 'P' Display "As can this one"
  1380.  
  1381.   The above is something of a double-negative.  Whenever the BREAK command
  1382. is reached, it prevents reaching any further commands with that key.  
  1383.  
  1384.   The CLS command is extremely simple, and just clears the screen on both
  1385. the user side and your side.
  1386.  
  1387. 'z' CLS
  1388.  
  1389.   The REMENU command is also very simple for display purposes.  It redisplays
  1390. the menu just as if the user had pressed ENTER.
  1391.  
  1392.   Finally, the SUBMENU and EXIT commands allow a little more depth to the  
  1393. menuing system.  Normally, when you change menus, the previous menu is
  1394. totally forgotten.  However, when you use the SUBMENU command instead of the
  1395. MENU command, the menu you came from is remembered.  Its best used for
  1396. an information/bulletin menu or a sysop menu.  For instance, if I go from the
  1397. main menu to the information menu, I might want to be able to hit X to get
  1398. back to the MAIN MENU.  If I go to it from the file menu I might want to hit
  1399. X to get back to the FILE MENU.  Although it is only possible to remember
  1400. a single menu level before an error occurs.  That is where EXIT comes in.
  1401. The EXIT command simply returns you to the menu from whence you came.
  1402.  
  1403.   [Inside Main.Con]
  1404. 'I' SUBMENU "Info.Con"
  1405.   [Inside Info.Con]
  1406. 'X' EXIT
  1407.  
  1408.   When you hit I from the Main menu, you would be transferred to the Info
  1409. menu.  When you pressed X from the Info menu, you would return to whatever
  1410. menu you were at before.  
  1411.  
  1412.   One possibility left to cover:  What if you try this?
  1413.  
  1414. 'J' If Ask Yes
  1415. 'O' LogOff
  1416. Status "Doing Something"
  1417.   'J' Door "Joke.Bat"
  1418. 'J' Endif
  1419.  
  1420.   The above is a bit confusing.  It will be very rare to see such a mess,
  1421. however it IS alright.  If the user hits J, the above will perform the 
  1422. IF ASK YES command, then set the status to "Doing Something", and finally
  1423. the DOOR "Joke.Bat" command (if they answered yes).  If the user hits O, the 
  1424. above will logoff and end there.  If the user pressed any other key and
  1425. passes through the above, the status will ALWAYS be set to "Doing Something".
  1426. Now, what if we do the opposite?
  1427.  
  1428. If Code[4] On
  1429.   'J' Status "Doing Something"
  1430.   'O' LogOff
  1431.   'J' Door "Joke.Bat"
  1432. Endif
  1433.  
  1434.   The above will work just fine, and might actually have a use somewhere.
  1435. The above will allow the 'J' and 'O' commands (at least the ones above)
  1436. ONLY if code[4] is ON.  The 'J' and 'O' commands above will be disabled if
  1437. code[4] is OFF.
  1438.  
  1439.   The last 2 commands in the menu control files are better explained a little
  1440. later.  They are the UPLOAD and DOWNLOAD commands, which will be explained
  1441. in detail in the section "File Transfers".  Also, more information on the
  1442. INTERNAL command is coming up.  For a quick refrence to all the menu control
  1443. commands, see the appendixes.  
  1444.  
  1445.                        [Part 2 - The Mail System...]
  1446.   
  1447.   LightSpeed's mail system is the most sophisticated in existance today.
  1448. BBS Mail systems have been becoming a thing of the past very quickly.  As
  1449. baud rates jump from 300 baud to lightning speeds of 28,800 in 2 years or
  1450. so, the BBSers from awhile back who found the mail base are now finding 
  1451. twice as many newer BBSers who are interested more in the latest files.  And 
  1452. sysops can only follow the crowd.
  1453.  
  1454.   LightSpeed attempts to bring back part of the dieing message system.  It
  1455. introduces 3 new methods that make it easier than ever for user's to use 
  1456. your message base.  It provides mechanisms to make user->user communication
  1457. simple and effective.
  1458.  
  1459.   [2.1 - What's so special...]
  1460.  
  1461.   The first key to LightSpeed's powerful mail system is "Automatic 
  1462. Clean-Up".  Automatic Clean-Up simply searches through the message base
  1463. once every night and tosses any messages that have "gathered too much dust".
  1464. Automatic Clean-Up is extremely easy to use.  The settings for it are
  1465. controlled through LSConfig's Master Configuration.  It will be explained
  1466. in-depth in a moment.
  1467.  
  1468.   The next method for LightSpeed's flexible mail system is extended division
  1469. of the messages.  Previously, there were commonly two types of messages:
  1470. Private (or personal e-mail) and public.  Private were simply messages sent
  1471. from one person to another and read by no-one else.  Public were messages
  1472. that were either written to ALL intending to catch someone's eye or when
  1473. a person was asked if they wanted the message public so that anyone 
  1474. interested could review it freely.  
  1475.  
  1476.   LightSpeed brings forth a new type of message, the "Post".  Now, public
  1477. messages are those which are between one person and another, but are marked
  1478. as open to all who are interested.  Posts, on the other hand, are messages
  1479. intended to be seen by as many people as possible.  
  1480.  
  1481.   Before I can completely explain Posts, I must introduce another powerful
  1482. feature.  The "conversation" is a type of message not directed to ALL, but
  1483. written to more than one target.  Users can create conversations simply by
  1484. listing more than one person's handle seperated by commas in the "To:" field 
  1485. of their messages.  For example:
  1486.  
  1487.   To [Enter=Abort]: Terror, Faith, Infinity
  1488.  
  1489.   There are also two types of conversations, public and private.  Private  
  1490. conversations are treated just like private messages, except that all the
  1491. people listed will receive the message and have the chance to reply instead
  1492. of just the one person.  If they do reply, they become the "From" person and 
  1493. everyone else involved in the conversation is written "To".  
  1494.  
  1495.   A public conversation brings forth yet another opportunety.  Anyone not
  1496. involved in the conversation who happens to glance at it can join in the
  1497. conversation.  And any replies of the future will involve them.  The more
  1498. they have to say the quicker they will become a full part of the 
  1499. conversation, or they can reply just once and slowly become involved (That
  1500. is a natural effect of the conversations.)
  1501.  
  1502.   Now, the strict definitions:
  1503.  
  1504.   Post:     A message written to ALL or a conversation in public
  1505.   Public:   A message written to a single individual, marked as public
  1506.   Private:  Any message marked as private
  1507.  
  1508.   Remember:  Sysops have the right, by-law, and are expected to, read
  1509. private e-mail even when it isn't directed to them.  It is against the law
  1510. for sysops to NOT monitor the private communications on any PUBLIC, OPEN
  1511. BBS.
  1512.  
  1513.   [2.2 - Simple tricks...]
  1514.  
  1515.   If you don't like the idea of 3 kinds of messages, you are free to combine
  1516. posts and publics.  Also, you can select which ones will be automatically
  1517. scanned for as "new mail" when a user logs on, if any.  Any that aren't 
  1518. automatically scanned for must be selected from a mail menu to be seen.  To 
  1519. combine posts and publics, simply attach both to the same key on the menus.  
  1520. The menu commands you should know are:
  1521.  
  1522. 'z' IF NEW PRIVATE/PERSONAL[S]/PUBLIC[S]/POST[S]
  1523.  
  1524.   That was explained before, except now you know what the differences are.
  1525. Private and personal are the same thing.
  1526.  
  1527. 'z' INTERNAL 3 0 ["To"]                            ; Write Message
  1528. 'z' INTERNAL 3 1 Private/Personal/Public/Post      ; Search for new mail
  1529. 'z' INTERNAL 3 2                                   ; Search through mail
  1530.  
  1531.   The 3-2 command is best as an option such as [S]earch mail from your
  1532. mail menu.  It is also the best way for a sysop to access private messages
  1533. (any message which would be otherwise hidden is shown in a darker blue).
  1534.  
  1535.   The 3-1 command is best used both at logon and as an option from your
  1536. mail menu.  It is greatly recommended that you AT LEAST scan for new
  1537. PERSONAL mail at logon.  That would be:
  1538.  
  1539.   [In Start.Con]
  1540. Internal 3 1 Personal
  1541.  
  1542.   You may want to ask a user if they wish to read their new mail first.
  1543. That can be done like so:
  1544.  
  1545.   [In Start.Con]
  1546. Display "Searching for new mail..."
  1547. If New Personal
  1548.   Display "You have new e-mail, do you wish to read it now?  (Y/N)"
  1549.   If Ask Yes
  1550.     Internal 3 1 Personal
  1551.   Endif
  1552. Endif
  1553.  
  1554.   The 3-0 command is best used as an option from your mail menu only.  It
  1555. also provides one of the most convenient features of LightSpeed:
  1556.  
  1557.   By specifying the optional "To" part of the 3-0 command, you can setup
  1558. menu options to write to any user on your system.  The basic example is the
  1559. comment to sysop command usually from your main menu:
  1560.  
  1561. 'z' Internal 3 0 "Terror"
  1562.  
  1563.   (Assuming your handle is Terror, grin)  However there is no law that states
  1564. that the target user must be a sysop.  ANY user on your system can have a
  1565. command like that, which is an excellent feature for any information
  1566. service.  One thing you might check:  The target user must have access to
  1567. the first mail area the user who writes the message has access to, or it
  1568. will be impossible to receive it.  For example, if Terror has access to
  1569. mail area 3 but a user can write him who has access to mail area 1, then
  1570. the message will be in a mail area Terror can't get to.  You could also
  1571. specify multiple users, or ALL for the "To" user.
  1572.  
  1573.   Of course, if you leave the 3-0 command with no "To" user, it turns into
  1574. the "Write Message" command and asks for the necissary information.   
  1575.  
  1576.   [2.3 - The details...]
  1577.  
  1578.   The message system is a tight part of LightSpeed, and takes very little
  1579. configuration from the sysop.  With that tightness, all the commands you
  1580. can use are already built-in to LightSpeed.  In detail, they are:
  1581.  
  1582.         Commands from ESC command-bar during message writing...
  1583.   [S]end              ...Saves and sends the message
  1584.   [A]bort             ...Cancels the message and exits the mail editor
  1585.   [C]ontinue          ...Resumes message editting
  1586.   a[T]tach Credits    ...Attaches credits to the message to be picked up by 
  1587.                                      the message recepient when they choose
  1588.   [U]pload            ...[Not yet supported]  
  1589.   
  1590.         During message editting...
  1591.   [Ctrl-R]      ..Redraw message         [ESC]         ..Editor Commands
  1592.   [Ctrl-Y]      ..Erase current line     [Ctrl-K]      ..Block Commands
  1593.  
  1594.         During message viewing...
  1595.   [E]dit              ...Allows you to modify your message
  1596.   [R]eply             ...Reply to a message
  1597.   [*] Repeat          ...Redisplays the message 
  1598.   [1] Normal          ...Leaves the sysop commands
  1599.   [2] Sysop           ...Shows first part of the sysop commands
  1600.   [3] Sysop           ...Shows second part of the sysop commands
  1601.   [C]opy              ...Copies the message to another receipient
  1602.   [F]oward            ...Fowards the message to another receipient
  1603.   e[X]it              ...Ends the message viewing
  1604.   [D]ownload          ...[Not yet supported]
  1605.   [-] Back            ...Goes back to previous message
  1606.   [Enter] Next        ...Moves on to the next message
  1607.   [T]o                ...[Sysop]...Changes who the message is "To"
  1608.   [F]rom              ...[Sysop]...Changes who the message author is
  1609.   [S]ubject           ...[Sysop]...Changes what the message's subject is
  1610.   [D]elete            ...[Sysop]...Destroys the message
  1611.   [P]rivacy           ...[Sysop]...Toggles between public and private
  1612.  
  1613.   The LSConfig Master Configuration allows you to change how many days     
  1614. pass before a message is automatically deleted for its age.  Leaving any
  1615. of the numbers blank or 0 in the Master Configuration will disable deletion
  1616. of that type of message.  Public and Post messages are actually not 
  1617. considered "read" until they have replies.  The recommended settings for
  1618. the Master Configuration are:
  1619.  
  1620.   Private Un-Read: [30]                     Private Read:  [ 7]
  1621.   Public Un-Read:  [40]                     Public Read:   [25]
  1622.   Posts Un-Read:   [45]                     Posts Read:    [20]
  1623.  
  1624.   In addition to setting these values, you must run UPGRADE.EXE every night
  1625. to perform the actual sweeping.  Although you can do this manually when you
  1626. wish, you should set up an event to do this nightly, see: System Events.
  1627.  
  1628.  
  1629.  
  1630.                        [Part 3 - The file system...]
  1631.  
  1632.   In today's BBSing community, a BBS's file system is by far the most looked
  1633. at and used part of the system.  History has shown that only a BBS's file 
  1634. system can attract callers from across the nation to your system.  But you
  1635. don't need a million files to get started, just the ability to upload and
  1636. download and a few files can keep users' interest.  And that ability is well 
  1637. kept in LightSpeed.
  1638.  
  1639.   [Note: Actual uploads and downloads are disabled in the Trial Edition]
  1640.  
  1641.   Listing files...
  1642.  
  1643.   Uploading is the process to adding new files to the BBS system, by user's
  1644. transmitting the files from their computers to yours.  LightSpeed handles
  1645. uploads in a unique way to simplify and minimize the sysop's work.  
  1646. LightSpeed can list its files in 3 ways.  The first is the BBS's file 
  1647. listings, which users can access.  That can be accessed simply by the
  1648. internal menu command 2-0...
  1649.  
  1650. 'L' Internal 2 0
  1651.   
  1652.   You can also specify a "menu set" to list.  This is ALL sets by default.
  1653. This menu set is a number specified like so:
  1654.  
  1655. 'L' Internal 2 0 3
  1656.  
  1657.   Using menu set 0 indicates ALL sets as well.  All file areas have a number
  1658. selecting their menu set, a file area in set 0 is global to ALL menu sets.
  1659. With this you can specify where the menu set will be used in your menuing
  1660. system.  You can have up to 255 menu sets.  By placing a 3 after the Internal
  1661. 2-0 command, you specify to list all file areas that include menu set 3.
  1662. (Each file area may be a part of up to 5 different menu sets.)  
  1663. If you have more than one file area to be listed, the user is allowed to
  1664. choose between them before the files are actually listed.  Otherwise, the
  1665. only choice available is automatically picked.
  1666.  
  1667.   Uploading Files...
  1668.  
  1669. 'U' Upload [MenuSet] [FileArea] [FileName]
  1670.  
  1671.   The above command allows the user to upload files to your BBS system.
  1672. If it is plain ('U' Upload) then it lets the user pick between ALL menu
  1673. sets (with LightSpeed, the user first selects a file area to place the
  1674. upload in.)  If you specify a number for MenuSet, the user may only pick
  1675. file areas in that menu set (if there is only one file area it is 
  1676. automatically used).  If you specify a number for FileArea, the user is
  1677. not asked what file area they wish to upload to and the area stated is
  1678. used instead.  If you specify a FileArea, the value for MenuSet is ignored,
  1679. however it must still be specified so that FileArea is always the second
  1680. field.  Example:
  1681.  
  1682. 'U' Upload 0 4
  1683.  
  1684.   The above would select file area 4, regardless of the menu sets file area
  1685. 4 is a member of.  If you specify a FileName, then whatever is uploaded will
  1686. be renamed to that filename.  WildCards are acceptable for this entry.  
  1687. If you specify a FileName, you must also specify a MenuSet and FileArea,
  1688. however the MenuSet will again be ignored.
  1689.  
  1690.   Downloading Files...
  1691.  
  1692. 'D' Download [FileName]
  1693.  
  1694.   The above command brings the user to the Download control menu.  From there
  1695. they can manage the files they have marked/tagged, select to download them,
  1696. and other activities.  If you specify a FileName, then the user will skip
  1697. the Download control menu and begin a download of FileName only (WildCards
  1698. are okey for this field.)  You should specify the path as well as the actual
  1699. file name.  Example:
  1700.  
  1701. 'D' Download C:\Files\Doom.Zip
  1702.  
  1703.   Searching for files...
  1704.  
  1705.   In this early version of LightSpeed, searching for files is not yet
  1706. possible.  However, you may want to add this command to your menus 
  1707. somewhere, as this feature will become available with the next version of 
  1708. LightSpeed.
  1709.  
  1710. 'S' Internal 2 4 [MenuSet]
  1711.  
  1712.   This command opens the File Search menu.  The user can select certain
  1713. file areas to search through.  If a number for MenuSet is specified, the 
  1714. user can only select the file areas in that MenuSet (it is recommended that
  1715. you NOT specify a MenuSet for search commands.)  
  1716.  
  1717.   Adding file transfers protocols...
  1718.  
  1719.   [This feature is normally only needed by experienced and advanced sysops]
  1720.  
  1721.   LightSpeed can allow additional file transfer protocols than those built-in
  1722. to the system by default.  There are three steps to this process.  First,
  1723. modify the (regular text) file Proto.Txt in your LightSpeed directory.
  1724. Instructions for modifying it are provided on the first 7 lines.
  1725. Second, modify your Proto.Rip, .Ans, and .Asc files in your Disp\ directory.
  1726. Third, modify the FTP.BAT file in your LightSpeed directory to handle the
  1727. new protocol.  If the transfer is successful, create a file named 
  1728. Ls_XFer.Ok in your LightSpeed directory.  FTP.BAT is called with the 
  1729. following information:
  1730.  
  1731.   %1  the keyword Upload or Download
  1732.   %2  the lowercase form of the letter in Proto.Txt for this protocol
  1733.   %3  the filename to transfer
  1734.  
  1735.   Rules of transfer...
  1736.  
  1737.   LightSpeed applies the following limits to all file transfers:
  1738.  
  1739.   1...  The user may not download after running out of credits.  The credit
  1740.     consumption rate remains in effect during downloads as specified by the
  1741.     menuing system.
  1742.   2...  The user may not download after running out of time for the current 
  1743.     call, or for the day.  
  1744.   3...  The user may not download if they have passed their upload:download
  1745.     ratio.
  1746.   4...  The user may not download if they have passed their upload:download
  1747.     K bytes ratio.
  1748.   5...  The user may not download if they have passed their daily files or
  1749.     K bytes limit (as set by their security class).
  1750.   6...  The user may not upload after running out of credits, you should
  1751.     set your menuing system to set the credit consumption rate to 0 during
  1752.     the transfer, and back to normal after the transfer to encourage uploads.
  1753.   7...  The user may upload after their time has run out, however if they
  1754.     pass their time limits they will be disconnected immidiately after the
  1755.     transfer.  There is not yet any upload-time/compensation feature in LS.
  1756.  
  1757.   Managing upload traffic...
  1758.  
  1759.     LightSpeed handles uploads to your BBS unlike other systems.  There are
  1760.   2 ways for sysops to view files on their BBS.  The first is the menu 
  1761.   command 2-100.  
  1762.  
  1763. 'F' Internal 2 100
  1764.  
  1765.     You can also "screen" the files to view, and view only new uploads to 
  1766.   your system.  A file is marked as a new upload when it is uploaded and
  1767.   left that way until a sysop changes it.  If a user changes it, it becomes
  1768.   an "approved" file.  Non-sysop users may not access any files which have
  1769.   not yet been approved.  
  1770.  
  1771. 'N' Internal 2 101
  1772.  
  1773.     The above is the command to view all new uploads to the system.  Sysops
  1774.   will also see "new uploads" when they are viewing the regular file 
  1775.   listings, however the new uploads will be shown in a blue color different
  1776.   from the other files.  
  1777.  
  1778.     To add masses of files to your BBS, the best way is to use the LightSpeed
  1779.   companion program LsFile.Exe, provided with LightSpeed.  LsFile has no
  1780.   documentation yet, however is simple to use.  The file_id.diz and 
  1781.   desc.sdi file searches are disabled for now (bugs) and ignored by LsFile.
  1782.   All files added with LsFile are "approved" unless the sysop does not
  1783.   enter a description for them.
  1784.  
  1785.     You can also add files already present in your file directories by
  1786.   performing a local upload.  (No upload actually occurs, just go through
  1787.   the process of uploading)  All files present in the directory of the file
  1788.   area you upload to that AREN'T already in the file database will be shown
  1789.   for you to enter descriptions to. 
  1790.  
  1791.                        [Part 4 - Installing Doors...]
  1792.  
  1793.   All doors included with LightSpeed follow a pattern for being setup.  
  1794. Samples are included to make setting up the LightSpeed doors as simple as
  1795. possible.  If you are new to operating a BBS, then reviewing how the batch
  1796. files work might provide valuable insight in setting up other doors (ones
  1797. not included with LightSpeed, mostly created by 3rd parties.)  If you don't
  1798. know what a Door.Sys or InfoLink.Dat is, refer to the glossary of terms.
  1799.  
  1800.   [4.1 - LightSpeed Companions]
  1801.  
  1802.   WARNING:
  1803.   If you are going to use LsVerify at this time, be aware it is severly 
  1804. undertested at this time.  Also, LsChat and LsPlanets are somewhat untested.
  1805. LsVote & LsChat are in excellent condition.
  1806.   At this point, there is no, or extremely limited (and out-dated), 
  1807. documentation on LsChat, LsWall, LsVerify, LsVote, and LsPlanets 
  1808. companions.  Batch files are included to help you figure them out. 
  1809.  
  1810.   LsChat, LsWall, LsVerify, LsVote, and LsPlanets are all included with
  1811. LightSpeed (with the exception of the Trial edition).  Care has been taken
  1812. to make setting doors up with LightSpeed as easy as possible.  The Ls-series
  1813. of doors all follow the same basic procedure for setting up:
  1814.  
  1815.   [Step 1]: Create a directory to store the companion door in.  It is
  1816. highly recommended that you first create a directory on your hard disk
  1817. named \Doors (Preferably from your root, and not a subdirectory of the
  1818. LightSpeed directory.)  Then, for each door you create, add a subdirectory
  1819. to hold it, for example, make a directory named C:\Doors\LsVote.
  1820.  
  1821.   [Step 2]: You will find the files for the doors in a zipfile in your
  1822. LightSpeed directory, if LightSpeed is setup correctly.  To unzip the files
  1823. into the directory you have created for them, use this command:
  1824.  
  1825.  (Make sure you are in your LightSpeed directory and PkUnzip is in your path)
  1826.   PkUnzip LsVote.Zip C:\Doors\LsVote
  1827.  
  1828.   Replace C:\Doors\LsVote with the name of the directory you created, and
  1829. replace LsVote.Zip wth the zipfile holding the door you are setting up.
  1830. They are: LsVote.Zip, LsChat.Zip, LsWall.Zip, LsVerify.Zip, and Planets.Zip.
  1831.  
  1832.   [Step 3]: You must now create a batch file to run the door from your BBS.
  1833. Several example batch files are included in your LightSpeed directory as
  1834. examples, and you may already have your door setup.  If not, your batch file
  1835. will look something like this:
  1836.  
  1837.   C:
  1838.   Cd\Doors\LsChat
  1839.   LsChat.Exe I%InfoLink%
  1840.   Exit
  1841.  
  1842.   Replace the C: with whatever drive you placed the door's files on, if
  1843. needed.  Also change the name of the directory to the one you placed the
  1844. door's files in, if needed.  For doors other than LsChat, change LsChat.Exe
  1845. to the executable file (The same as the name of the program except LsPlanets
  1846. where the name of the executable file is Plan.Exe).  
  1847.   If you are installing LsVote.Exe, you will need to make one additional
  1848. change.  Add a line after the one calling LsVote.Exe and before the Exit
  1849. which reads like this:
  1850.  
  1851.   LsVote.Exe I%InfoLink% +
  1852.  
  1853.   LsVote has two modes built-in, controlled by the plus symbol.  If no plus
  1854. is specified, LsVote only allows users to vote on topics.  If a plus is
  1855. specified, the users will NOT vote on topics but instead will be allowed to
  1856. view the results and create new topics (depending on your LsVote setup.) 
  1857.   You do NOT have to place the line without the plus here if you don't want.
  1858. You can place it anywhere, sometimes you may wish to place the line without
  1859. the plus in your Login.Bat file (which is normally called after a user logs
  1860. in instead of a menu), and place the line with the plus as a door from one
  1861. of your menus.  
  1862.  
  1863.   [Step 4]: If you have not already done so, you must add a line in your
  1864. menus somewhere that includes a DOOR command for your batch file.  For
  1865. LsVote, this line might read as follows under your main menu:
  1866.  
  1867.   'V' Door "\Ls\LsVote.Bat"
  1868.  
  1869.   That is, if the batch file is named LsVote.Bat and in the directory \Ls.
  1870.   You might also need to modify your menu displays to show the new door as
  1871. an option.
  1872.   Note:  LsWall is normally called by Login.Bat, which is tied to the
  1873. menu Start.Con.
  1874.  
  1875.   [4.2 - Other doors]
  1876.  
  1877.   In addition, most LightSpeed-style doors (those that use the InfoLink.Dat 
  1878. drop file) will follow these formats for their command line, depending on 
  1879. the dropfile supported by the individual door:
  1880.  
  1881.   LsGeneric.Exe I%InfoLink%
  1882.   LsGeneric.Exe D%DoorSys%
  1883.   LsGeneric.Exe LOCAL
  1884.  
  1885.   One of the above should appear above in a batch file that calls the
  1886. doors.  IMPORTANT:  Make sure the last line in your batch file is like this:
  1887.  
  1888.   Exit
  1889.  
  1890.   No other information should be present on that line, and it terminates the
  1891. batch file and returns control to LightSpeed.  
  1892.   The following % codes can be used in your batch files to represent
  1893. different information:
  1894.  
  1895.   %Node%       ..Replaced with the number of the current node, Example:  3
  1896.   %BaudRate%   ..Replaced with the baud rate of the current caller, Ex: 19200
  1897. * %DoorSys%    ..Replaced with the drive, path, and filename of the
  1898.                  Door.Sys file, Ex: C:\Ls\Node3\Door.Sys
  1899. * %InfoLink%   ..Replaced with the drive, path, and filename of the
  1900.                  InfoLink.Dat file, Ex: C:\Ls\Node2\InfoLink.Dat
  1901. + %Code0%      ..Replaced with the current value of Code[0]
  1902.     ...  
  1903. + %Code5%      ..Replaced with the current value of Code[5]
  1904.   
  1905.   + The %CodeX% values can only be used if the keyword CODE or CODES is
  1906.    present in your menu's DOOR command, see Part 1.4 - Modifying the menu
  1907.    system under the DOOR command for more information.
  1908.   * If the Quick, InfoLink, or DoorSys keywords are present in your menu's
  1909.    DOOR command, only one or neither of the dropfiles (Door.Sys and 
  1910.    InfoLink.Dat) will be created and available for that door.  For more
  1911.    information, see Part 1.4 - Modifying the menu system under the DOOR
  1912.    command.
  1913.  
  1914.   Additional % codes can be made available by adding this line to your Batch
  1915. file prior to refrencing the % codes:
  1916.  
  1917. Call Port%Node%.Bat
  1918.  
  1919.   After the above command is executed, the following % codes are added, -IF-
  1920. the PortX.Bat file is setup properly (See also Part 1 - Getting Started
  1921. under Step 7 for more information.)
  1922.  
  1923.   %ComPort%    ..Replaced with the current comport, Ex: 2
  1924.   %ComId%      ..Replaced with the current fossil port (if applicable), Ex: 1
  1925.   %Irq%        ..Replaced with the current port's IRQ setting, Ex: 3
  1926.   %Base%       ..Replaced with the current port's hex base address, Ex: 3E8
  1927.  
  1928.   To use any % code, just type in the % code's name (i.e. %ComPort%) and
  1929. when the batch file is running it will automatically be replaced by the
  1930. correct value.  
  1931.  
  1932.                      [Part 5 - Keys & Local Commands...]
  1933.  
  1934.   There are a few commands you should know throughout operating LightSpeed:
  1935.  
  1936.   When no user is logged on, you can press Alt-L to logon "locally".  You can
  1937. press Alt-S to logon "locally" under the sysop's alias.  You can press Alt-X
  1938. to exit LightSpeed to DOS or the calling batch file.
  1939.  
  1940.   Any sysop user may press Alt-S (this may require "doorway mode" on some
  1941. terminals, and may be impossible on others) to shortcut to the sysop's 
  1942. user database, the listing of all user accounts on the system.  The user can
  1943. press Alt-S or X to exit the user database and return to what they were
  1944. doing before.
  1945.  
  1946.   Local keys:
  1947.  
  1948.     [F1]  Decrease the size of the status bar...
  1949.     [F2]  Increase the size of the status bar... (Up to 4 lines)
  1950.     [F3]  Turn sound off/on (You cannot HEAR sysop page without sound)
  1951.     [F4]  Turn page off/on  (Users can page even without sound)
  1952.     [F7]  Decrease user's time remaining by 5 minutes...
  1953.     [F8]  Increase user's time remaining by 5 minutes...
  1954.     [Ctrl-F7/F8]  Decrease/Increase user's time remaining by 15 minutes...
  1955.     [Alt-F7/F8]   Decrease/Increase user's time remaining by 1 minute...
  1956.     [F9]  Online upgrade (Change security class or user's credits)...
  1957.     [F10] Enter/Exit sysop chat (use to answer a sysop page)...
  1958.     [Alt-H]  Hangs up the current user.  Works on local logons as well.
  1959.  
  1960.                        [Part 6 - Glossary of Terms...]
  1961.  
  1962.   BBS - (Bulletin Board System) A computer system which answers telephones
  1963. using modems and allows various services with users.  LightSpeed is 
  1964. considered "BBS Software" as it serves as the software portion of a BBS.
  1965.  
  1966.   Carrier - The sound made by the modem, allowing the data transfer.  Also:
  1967. If carrier is "lost" or "dropped" it means the connection between the two
  1968. modems has been lost.  A carrier is always present in normal modem 
  1969. communication as long as the modem is communicating with another modem.
  1970.  
  1971.   CoSysOp - (Co-System Operator) A person who assists in operating a BBS
  1972. system.  With LightSpeed, these people normally have "Sysop" security
  1973. clearance.  Only a "Master" security user may assign "Sysop" security
  1974. clearance to others.
  1975.  
  1976.   Door - A program, often sold seperatly or distributed freely, that can be
  1977. operated through the BBS without modifying the BBS Software.  Most often,
  1978. door programs are games which users can play.  The users "invoke" the door
  1979. by selecting it from the BBS system's menus, which causes the BBS to "swap
  1980. out" (wait in the background) and load the door program.  [This feature is
  1981. not available in the trial edition of LightSpeed]
  1982.  
  1983.   Door.Sys - The most common form of DROPFILE (See below).  In LightSpeed,
  1984. and many other applications, refers to the 52-line version of the Door.Sys
  1985. standard.  The shorter version is NOT supported by LightSpeed.
  1986.  
  1987.   Download - Transfer of a file from a BBS system using a file transfer
  1988. protocol such as Z-Modem.  On a BBS, downloading is normally selecting a
  1989. file from the BBS system's listings and receiving it.  Users usually select
  1990. files from a BBS system and download them when they need a file, because BBS
  1991. systems have a much greater variety of files than ordinary computers (the
  1992. reason is the flow of files in and out of the BBS from large numbers of
  1993. people, and the BBS often having more storage/hard disk space than other
  1994. computers.) 
  1995.  
  1996.   Dropfile - A data or text file created by BBS Software to provide
  1997. information to door programs.  Usually, dropfiles are very small and take
  1998. little hard disk space.  They are also removed after the door has finished
  1999. executing.  LightSpeed supports 2 types of dropfiles, Door.Sys and 
  2000. InfoLink.Dat.  The Door.Sys drop file is sometimes considered a standard
  2001. among BBS systems and doors and is supported by almost all door programs.
  2002.  
  2003.   E-Mail - (Electronic Mail) On LightSpeed, this is known also as a
  2004. "personal message".  EMail often refers to messages transmitted to and
  2005. from the internet, however can also be considered messages on a single BBS.
  2006. For example:  A user might write EMail to the sysop asking him a question,
  2007. and the sysop might respond with more EMail back to the user.  
  2008.  
  2009.   File Transfer Protocol - The communications protocol used to transfer a
  2010. file from one computer to another, or to and from a BBS.  The most common
  2011. FTP is "Z-Modem" or "Z-Modem MobyTurbo" which is reliable and fast.  
  2012.  
  2013.   InfoLink.Dat - A DROPFILE (See above) unique to LightSpeed.  The 
  2014. InfoLink.Dat file is not supported by doors except those written specifically
  2015. for LightSpeed.  All the LightSpeed companion doors (LsChat, LsVote, etc)
  2016. require the InfoLink.Dat dropfile and do not support the Door.Sys dropfile.
  2017.  
  2018.   Internet - An international service with multiple purposes comprised of
  2019. thousands of BBS systems around the world.  The internet is primarily
  2020. connected by satellite links, users can purchase access to the internet
  2021. through multiple services, including BBS systems (not currently including
  2022. LightSpeed-based BBS systems, however it is planned in the future.)  
  2023.  
  2024.   Login or Logon - The process of connecting to a BBS and identifying a user,
  2025. can also refer to the events between entering identification and when the
  2026. main menu is displayed.
  2027.  
  2028.   Modem - (Modulator/Demodulator) Common computer peripherial which can make
  2029. and receive ordinary phone calls with other modems and establish a data
  2030. communication between two computers.  
  2031.  
  2032.   Node - A phone line, with a single modem answering calls and allowing
  2033. access to a BBS system.  Also called a "line" refering to the phone line
  2034. required.
  2035.  
  2036.   SysOp - (System Operator) The person or persons operating a BBS system.
  2037. In almost all cases, the person who owns the BBS system's computer and the
  2038. one who purchases the BBS software such as LightSpeed.  In LightSpeed, this
  2039. person normally is the only one to have "Master" security clearance.
  2040.  
  2041.   Upload - Transfer of a file to a BBS system using a file transfer protocol
  2042. such as Z-Modem.  (A common misconception is that when a user is "receiving"
  2043. a file from a BBS it is considered to be a upload to the user, but correctly
  2044. is a download from the BBS.)
  2045.  
  2046.                         [Part 7 - Troubleshooting...]
  2047.  
  2048.   Q. When I start up LightSpeed it says "-=Please wait=-" in the corner  
  2049.     and then "-=Retry #xx=-" and finally says "Error: Cannot open file ???"
  2050.   A. LightSpeed is unable to access one of its disk files, check that Ms-Dos
  2051.     SHARE is loaded and FILES=[at least 30].  See Part 1 - Getting Started:
  2052.     Step 2 for more information.
  2053.  
  2054.   Q. What does the LaserLink section of LsConfig do?
  2055.   A. It is probably innoperational at this time, so you are best to avoid
  2056.     using it.  See also: Appendix A - Known bugs, and Introduction: Future
  2057.     Plans.  
  2058.  
  2059.   Q. LightSpeed has to retry initializing the modem multiple times, and
  2060.     sometimes fails.  Am I doing something wrong?
  2061.   A. No, it is normal for LightSpeed to retry the modem init, until it
  2062.     passes Retry #6 at which time LightSpeed will abort to DOS.  This can
  2063.     happen on a few rare occasions, you may need to modify your batch file
  2064.     to handle it.  See also Appendix A - Known bugs.
  2065.  
  2066.   Q. Once an hour LightSpeed seems to initialize the modem again.  What 
  2067.     gives?
  2068.   A. LightSpeed resets the modem once an hour to make sure that the serial
  2069.     port has not crashed.  It is a simple safety precaution to prevent the
  2070.     system from loosing the ability to answer the phone.  If the serial port
  2071.     has crashed, LightSpeed will not be able to initialize it again and will
  2072.     return to DOS or its calling batch file.  See also Appendix A - Known 
  2073.     bugs.
  2074.  
  2075.                     [Part 8 - Pricing and upgrade policy...]
  2076.  
  2077.   Notice:  These prices are subject to change at any time without any
  2078. prior notice.  These are the current prices of LightSpeed at this time.
  2079.  
  2080.     Edition                     Nodes      Current Price           
  2081.  
  2082.     Trial Edition               1          Shareware (Free)
  2083.     Single Line                 1        $ 40
  2084.     Dual Line                   2          100
  2085.     Cobra Edition               6          300
  2086.     MultiLine Edition           20         800
  2087.     Support available up to 999 nodes, call for pricing...
  2088.  
  2089.   All systems support a free local node for the sysop's personal use.
  2090.  
  2091.   [8.1 - Upgrades...]
  2092.  
  2093.     Our upgrade policy is divided into 2 catagories.  MINOR updates are
  2094.   those which fix bugs and add minor improvements, while MAJOR updates are
  2095.   ones which add important new features or require a new manual.  An example
  2096.   of a minor update might be from version 1.0 to version 1.1 or 1.2.  An
  2097.   example of a major update might be from version 1.1 or 1.2 to version 2.0.
  2098.  
  2099.     Minor updates are available free.  We will distribute upgrades on the 
  2100.   same sources we will distribute shareware LightSpeed (large BBSes, 
  2101.   internet sources, etc).  You can also download the newest upgrades on 
  2102.   our support BBS, the only cost will be any long-distance phone charges 
  2103.   that incur (average upgrade calls will last 2-5 minutes.)  You can also 
  2104.   receive an upgrade via USMail.  If your LightSpeed purchase was within one 
  2105.   year, this upgrade will be sent to you free and automatically as soon as
  2106.   it is available.  After the first year, you may purchase an additional 
  2107.   year of automatic free MINOR upgrades for $15.  You can download the 
  2108.   newest upgrade through popular BBS systems and our own support BBS 
  2109.   regardless of whether you are receiving automatic updates or not.  If
  2110.   you are within 1-year of your purchase or a member of the 1-year upgrade
  2111.   plan, you will also receive automatic NOTIFICATION of any major updates.
  2112.   Note: We currently will NOT send notice when your year expires.   
  2113.     
  2114.     Major upgrades include a $15 charge. Major upgrades may include 
  2115.   additional charges if the price of your version of LightSpeed increases.  
  2116.   For example, if you have purchased the Dual Line version for $100, and the 
  2117.   price increases to $110 between version 1.2 and version 2.0, then 
  2118.   purchasing a major upgrade for your version 1.2 will cost $15 for the 
  2119.   upgrade plus the difference of $10 in the price, for a total cost of $25
  2120.   for the upgrade.
  2121.  
  2122.     Upgrading between Editions will cost the difference plus $5.  For 
  2123.   example, if you purchase the Single Line Edition for $40 and your BBS
  2124.   grows so that you need the Dual Line Edition for $100, you can buy it
  2125.   for $65.
  2126.  
  2127.   [8.2 - Contacting us...]
  2128.  
  2129.   For information by modem... 
  2130.   For most current prices...
  2131.   For technical support...
  2132.   Or to place an order...
  2133.  
  2134.   By BBS:
  2135.     Call  (505) 865-0116  or  (505) 865-7789  by modem.
  2136.     Login as GUEST with the password LS for quickest access..
  2137.  
  2138.     [Remember, we cannot accept credit cards, so you must send a check or
  2139.      money order by USMail anyway before we can ship your program.  You MAY
  2140.      pick up your order via our support BBS however.]
  2141.  
  2142.   By USMail:
  2143.     See REGISTER.FRM for information.
  2144.  
  2145.     We can accept checks addressed to "Carol Black", money orders are also
  2146.   fine, however we regret we cannot accept credit cards at this time.  
  2147.  
  2148.   [8.3 - What you're buying...]
  2149.  
  2150.   Any purchase of LightSpeed includes LightSpeed BBS Host itself, as well
  2151. as companion programs to maintain the system.  It also includes LsChat,
  2152. LsVote, LsWall, LsVerify, and LsPlanets companion doors free of charge
  2153. (A $120 value!)  See the Introduction of this document for details.
  2154.   Technical support will be offered via the modem numbers given above,
  2155. at our descresion.  By-request we will offer voice phone support.  This
  2156. technical support is not a warranty, and is not garunteed, however, we
  2157. will try the best we can to keep your system running.  
  2158.  
  2159.                         [Appendix A - Known bugs...]
  2160.  
  2161.     Known bugs in the LightSpeed system to-date:
  2162.  
  2163.     -  Initializing modem:  LightSpeed sometimes takes multiple tries to
  2164.      initialize the modem.  This is normal, and not a problem unless retry #6
  2165.      fails, at which time LightSpeed exits to DOS or the calling batch file. 
  2166.      You might want to setup your batch file to reboot your system and reload
  2167.      LightSpeed or retry LightSpeed (if you will be running a dedicated 
  2168.      system.)
  2169.     -  System Events:  These have had problems in the past and from time to
  2170.      time.  If your BBS system starts doing all kinds of totally wacked
  2171.      things, something you might try is deleting EVENT*.* from your 
  2172.      LightSpeed directory.  If this occurs frequently, you may just want to
  2173.      get rid of your daily maintenance and such in favor of running the
  2174.      events manually every few days.  The bottom line: Don't RELY on the
  2175.      system events working correctly.
  2176.     -  LaserLink:  LightSpeed supports the LaserLink system already, however 
  2177.      this system will not function correctly.  You would be best not to 
  2178.      touch anything related to LaserLink (currently, only a section in 
  2179.      LsConfig).  For an explanation of LaserLink, see future plans, above.
  2180.     -  Slightly slow menus:  Unless you are going to be running multiple
  2181.      nodes or on a slow computer (less than 33mhz) this shouldn't even be
  2182.      noticable. 
  2183.     -  The file system is somewhat un-tested and may have a particularly
  2184.      high number of bugs.
  2185.     -  Teleconference tends to lock up if a user drops a carrier during
  2186.      certain operations.  Teleconference is also slower than will be in
  2187.      the future (we will be completely recoding teleconference to operate
  2188.      without using so much disk-access).
  2189.     -  Incomplete documentation:  These documentation which you are currently
  2190.      reading only include a quick explanation of the system, later they will
  2191.      be lengthened and more information added.  
  2192.  
  2193.                             [Appendix B - Why?]
  2194.  
  2195.   Q. Why did we release LightSpeed with so many bugs still?
  2196.   A. We did it for a number of reasons.  First, we wanted to generate
  2197.     interest in the software.  Second, our resources are very limited, and
  2198.     we are quickly finding that effective testing of something as large as
  2199.     BBS Software is extremely difficult with our equipment.  Those are
  2200.     the major reasons, and also to compensate for the number of problems,
  2201.     we've kept the price low.  However, we hope to maintain this tradition
  2202.     and continue offering the ultimate BBS Software for as low as $40 in
  2203.     the future.  This is currently from one-half to one-tenth of our
  2204.     competition's price!
  2205.  
  2206.   Q. Why did we create LightSpeed systems?  
  2207.   A. Because we felt we could greatly improve on the competition's systems.
  2208.     We were tired of the lack of any standardization in the industry beyond
  2209.     the ANSI Color standard.  And we believe the future of BBSing is to be
  2210.     overwritten by the Internet and national services unless something like
  2211.     LightSpeed can compete with such services, or at least bring forth a new
  2212.     war-front to compete on.  Not to say those services are anything bad,
  2213.     we just don't want to see the "smaller BBSes" eliminated and what they
  2214.     bring to the world eliminated with them.  Why add Internet support to
  2215.     BBS Software that is trying to compete with it?  Because we are not
  2216.     only interested in competing with it.  If someone wants to run an
  2217.     internet link-up, they are going to do it with or without us, so we can
  2218.     offer them LightSpeed and with it spread our ideas so that more people
  2219.     can enjoy them.  
  2220.       
  2221.                                [Credits]
  2222.  
  2223.   Wiley Black is currently a student at Los Lunas High School, age 15.  He
  2224. has been programming in C and recently C++ for 5 years now, and been
  2225. involved in multiple projects.  He is also an employee and minor
  2226. owner of RidgeLine Engineering.  After nearly 13 months on the project, 
  2227. he is the lead programmer for LightSpeed BBS Software, and currently has
  2228. written almost 100% of the system alone.  His family is on very short income
  2229. at the moment, and is hopeful that LightSpeed can get them back on their
  2230. feet.  Wiley is also the one who handles the sales and pricing of the
  2231. system.  Wiley is known as Terror throughout New Mexico BBSes and his own 
  2232. system.
  2233.   Joel Yancey is a student at Valley High School located in Corrales, NM.
  2234. He is a pascal programmer currently learning C and C++ techniques.  His
  2235. knowledge of modems, BBS systems, and internet operations has greatly
  2236. benefited the project.  Joel is known as Python, Kurt Kobain, and R0k on
  2237. New Mexico BBSes and his own system.  Joel's system is "Dead End BBS" at
  2238. (505)898-7120 currently running 14.4k.
  2239.   Steven Fisher is a student at La Cueva High School, and is an experienced
  2240. C and C++ programmer.  He has excellent knowledge of many aspects of BBS
  2241. systems, internet systems, and non-DOS-systems which has helped the system.
  2242. Steve is known as Lithium and Eagle on New Mexico systems.
  2243.   
  2244.   Special thanks to...
  2245.  
  2246.   Malek Annabi (King Burgundy)...For bein' an inspiration for all who know U
  2247.   Joe Bajin & Paul Stephans...For bein' a bum who wants my software, and
  2248.     for coming to my parties and haf'n a blast.
  2249.   Dave Doster (Cybersled)...For bein' a friend for no reason...
  2250.   Rebecca Haskins...For keeping my skewl-life interesting.. farewell...
  2251.   Dan Lopez (Rev.Pslock Macro)...For bein' a pal when no-one else would...
  2252.     ...don't enjoy my ex too much man!
  2253.   Paul Kennerly (Depeche Mode)...For bein' a cosysop bum...  
  2254.   Matt Landis (Weird)...For countless deathmatches ended in insanity...
  2255.   Michele Mauro...For being coo' and putting up with my internet mail...
  2256.   Becky Malerie (sp?)...For bein' a friend with some style...
  2257.   Jason Owsley...For having all kindsa wierd ideas...
  2258.   Mike Williams (Little M)...For daring to enjoy my GTs...
  2259.   ID Software...For giving me a hobby
  2260.     And finally...
  2261.   Olivia Villescas...For giving me someone to love ;} <kisses>
  2262.   And an old friend who went by the handle NataS...Off in CA somewhere...
  2263.   Thanks for getting me off on the right foot, bro.  Your idea to have GTs 
  2264.   worked!  Live well, friend.
  2265.  
  2266.                                [Legal Notice]
  2267.  
  2268.     The following applies in full to LsChat, LsVote, LsVerify, LsPlanets,
  2269.   and LsWall, as well as all companion programs and documentation comprised
  2270.   of LightSpeed BBS Host software.
  2271.  
  2272.     THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
  2273.   THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM
  2274.   IS ASSUMED BY YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU (AND
  2275.   NOT RIDGELINE ENGINEERING, ITS DEALERS, OR EMPLOYEES) ASSUME THE 
  2276.   ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
  2277.   FURTHER, RIDGELINE ENGINEERING DOES NOT WARRANT, GUARANTEE, OR MAKE
  2278.   REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE
  2279.   OF THIS PROGRAM IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY,
  2280.   CURRENTNESS, OR OTHERWISE; AND YOU RELY ON THE PROGRAM AND IT'S
  2281.   RESULTS SOLELY AT YOUR OWN RISK. RIDGELINE ENGINEERING CANNOT
  2282.   ACCEPT RESPONSIBILITY FOR SYSTEM DAMAGE, LOSS OF PROFIT, OR ANY
  2283.   OTHER SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE RESULTING FROM
  2284.   THE USE OR INABILITY TO USE THIS PRODUCT.
  2285.  
  2286.     LightSpeed BBS Host system's EXE files, and DOC files may not be modified 
  2287.   in any way.  To do so is a voilation of law.  Distribution of modified
  2288.   files is further voilation of law.  This includes all editions and versions
  2289.   of LightSpeed and its companions.
  2290.  
  2291.     RidgeLine Eng., DOES warrant to the original licensee of
  2292.   a REGISTERED product that the program disk(s) on which the
  2293.   program is recorded be free from defects in materials and
  2294.   workmanship under normal use and service for a period of ninety
  2295.   (90) days from the date of delivery as evidenced by a copy of
  2296.   your receipt. RidgeLine Eng.'s entire liability and your
  2297.   exclusive remedy shall be replacement of the disk not meeting
  2298.   RidgeLine Eng.'s limited warranty.
  2299.  
  2300.     We reserve the right to refuse service, sales, or information to 
  2301.   anyone we choose, for any reason.  
  2302.  
  2303.   COPYRIGHT
  2304.  
  2305.     LightSpeed BBS Host software and this document are Copyright
  2306.   (C)1995 RidgeLine Eng. All rights reserved. 
  2307.  
  2308.     Any specific hardware/software names used in this document are
  2309.   trademarks of specific manufacturers.
  2310.  
  2311.     Regardless of the method of marketing, LightSpeed BBS Host 
  2312.   software is not in the public domain. It is copyrighted by 
  2313.   RidgeLine Engineering. All rights are reserved. Copying, 
  2314.   duplicating, selling or otherwise distributing this product 
  2315.   is a violation of the law. However, we grant you the right, 
  2316.   in fact encourage you to make and distribute as many copies 
  2317.   of the shareware Trial edition as you wish, using any 
  2318.   acceptable medium of exchange, with the following provisions:
  2319.  
  2320.     You may distribute this Trial Edition as often as you like,
  2321.   to any sources you choose.  Do not distribute LightSpeed without 
  2322.   all of its files, addendum files, documentation and this notice
  2323.   in their original form.  Please obtain our written permission prior 
  2324.   to distribution with any "Bundled" software packages.  (I am willing
  2325.   to allow bundled sales in most cases, just contact me.)  Do not alter the 
  2326.   program or documentation in any manner.  Please do not accept payment for 
  2327.   the program to exceed $10, unless it is being distributed on a "Shareware 
  2328.   Cd-Rom".  LightSpeed Trial Edition is licensed for individual personal 
  2329.   use and evaluation for an unlimited time.  Use and evaluation by 
  2330.   businesses, corporations or individuals in a commercial venture is 
  2331.   limited to 90 days, after which time a REGISTERED edition of LightSpeed
  2332.   must be purchased or the use of LightSpeed Trial Edition must be 
  2333.   discontinued.
  2334.  
  2335.     Distribution of any REGISTERED edition of LightSpeed BBS Host is in
  2336.   violation of license agreements and international copyright laws!
  2337.  
  2338.   SOURCE CODE
  2339.  
  2340.     This product uses the SPAWNO routines by Ralf Brown for extremely fast
  2341.   and effecient shelling to DOS for door and event handling.  These are
  2342.   extremely good routines and I encourage all programmers to make use of
  2343.   them!  LightSpeed also makes use of the MCOMM5 serial library, which is
  2344.   the best we've ever seen.  Finally, LightSpeed makes use of the LsTree
  2345.   B-Tree Indexing module written by our team.  
  2346.  
  2347.     The actual source code to LightSpeed is not, and will not, be available
  2348.   under any circumstances.  We are working on distributing a door-kit free
  2349.   or for under $25 with LightSpeed named LsDoor.  This door-kit provides
  2350.   all the foundation that programmers will need to create their own doors
  2351.   and utilities to work with LightSpeed (or any BBS Software.  The door-kit
  2352.   automatically detects LightSpeed and enables the LightSpeed door extensions
  2353.   such as paging-via-door.)  
  2354.     While the actual door kit will sell for $25 or under, there will be an
  2355.   additional $25 cost in purchasing the MCOMM5 serial library (which cannot
  2356.   be purchased through us at this time, but we will give you the place to 
  2357.   call and the form to send.)  
  2358.     Examples of the power of the LsDoor library include all the companion
  2359.   doors included with LightSpeed, such as LsChat and LsVote.  Try paging a
  2360.   user from chat, or paging a user IN chat and you'll get the idea.  
  2361.  
  2362.     LightSpeed has been in the works since Summer of 1994.  It has been
  2363.   rewritten about 4 to 5 times in that time (our first BBS designed totally
  2364.   failed and we had to start over around fall of 1994.)  The LsTree Indexing
  2365.   module was partially completed in summer of '94 and revised and finished
  2366.   in spring of '95.  
  2367.  
  2368.